记一次(FAKA)CMS漏洞审计
字数 1061 2025-08-03 10:57:28

FAKA CMS漏洞审计与分析报告

1. 初始信息收集与后台登录

1.1 发现后台登录地址

  • 通过CTF题目环境发现FAKA CMS后台登录入口
  • 获取到系统SQL数据库文件,包含用户表数据

1.2 数据库分析

-- 导入SQL文件方法
source /path/to/sql_file.sql

-- 查看系统用户表
SELECT * FROM system_user;
  • 获取到管理员凭证:admin/cccbbb123(MD5解密后)

2. 文件上传漏洞分析

2.1 漏洞位置

  • 后台管理界面存在文件上传功能点
  • 上传路径构造存在缺陷

2.2 关键代码分析

// upstate函数处理逻辑
$filename = join('/', str_split($post['md5'], 16)) . ".{$ext}";
$token = md5($filename . session_id());

// upload函数处理逻辑
$md5 = str_split($post['md5'], 16);
$filename = join('/', $md5) . ".{$ext}";

2.3 漏洞利用步骤

  1. 构造恶意MD5值

    • 原始MD5:1dd114c26d2e32d9afee242d946cd61f
    • 修改为:1dd114c26d2e32d9afee242d946c.php(保持32位长度)
  2. 生成有效token

$md5 = "e52360073082563ea6d4a31029d7.php";
$md5 = str_split($md5,16);
$ext = "jpg";
$filename = join('/', $md5) . ".{$ext}";
echo md5($filename); // 00ee0c7f512728e8529cfd35d6f77ad4
  1. 上传图片马

    • 使用图片马绕过内容检测
    • 修改上传请求中的md5和token参数
  2. 访问上传文件

    • 路径格式:/static/upload/{md5_part1}/{md5_part2}
    • 示例:/static/upload/e52360073082563e/a6d4a31029d7.php

3. 未授权访问漏洞

3.1 漏洞位置

  • /admin/index/info 路由未做权限验证
  • 可未授权添加系统用户

3.2 关键代码分析

public function info()
{
    if (intval($this->request->request('id')) === intval(session('user.id'))) {
        return $this->_form('SystemUser', 'user/form');
    }
    $this->error('只能修改当前用户的资料!');
}

3.3 漏洞利用步骤

  1. 直接访问 /admin/index/info

  2. 添加新用户时通过POST添加authorize=3参数

    • 普通用户:无authorize参数
    • 管理员:authorize=3
  3. 使用新创建的管理员账户登录系统

4. 任意文件下载漏洞

4.1 漏洞位置

  • 系统备份功能存在路径遍历
  • 下载路径参数未过滤

4.2 漏洞利用

  1. 抓取备份下载请求

  2. 修改文件路径参数进行目录遍历

    • 示例:/path/to/backup/../../etc/passwd
  3. 成功下载系统敏感文件

5. 漏洞修复建议

5.1 文件上传漏洞修复

  1. 严格限制上传文件后缀白名单
  2. 对上传文件名进行强制重命名
  3. 增加文件内容检测机制

5.2 未授权访问修复

  1. 为所有管理接口添加权限验证
  2. 使用中间件统一检查管理员权限

5.3 任意文件下载修复

  1. 限制可下载的文件目录
  2. 对文件路径参数进行规范化处理
  3. 禁止路径遍历符号(../)

6. 审计总结

本次审计发现了FAKA CMS中三个高危漏洞:

  1. 文件上传漏洞(可上传PHP木马)
  2. 未授权访问漏洞(可添加管理员账户)
  3. 任意文件下载漏洞(可读取系统敏感文件)

漏洞利用链完整,可导致系统完全沦陷。建议用户及时更新系统或按照修复建议进行修补。

FAKA CMS漏洞审计与分析报告 1. 初始信息收集与后台登录 1.1 发现后台登录地址 通过CTF题目环境发现FAKA CMS后台登录入口 获取到系统SQL数据库文件,包含用户表数据 1.2 数据库分析 获取到管理员凭证: admin/cccbbb123 (MD5解密后) 2. 文件上传漏洞分析 2.1 漏洞位置 后台管理界面存在文件上传功能点 上传路径构造存在缺陷 2.2 关键代码分析 2.3 漏洞利用步骤 构造恶意MD5值 : 原始MD5: 1dd114c26d2e32d9afee242d946cd61f 修改为: 1dd114c26d2e32d9afee242d946c.php (保持32位长度) 生成有效token : 上传图片马 : 使用图片马绕过内容检测 修改上传请求中的md5和token参数 访问上传文件 : 路径格式: /static/upload/{md5_part1}/{md5_part2} 示例: /static/upload/e52360073082563e/a6d4a31029d7.php 3. 未授权访问漏洞 3.1 漏洞位置 /admin/index/info 路由未做权限验证 可未授权添加系统用户 3.2 关键代码分析 3.3 漏洞利用步骤 直接访问 /admin/index/info 添加新用户时通过POST添加 authorize=3 参数 普通用户:无authorize参数 管理员:authorize=3 使用新创建的管理员账户登录系统 4. 任意文件下载漏洞 4.1 漏洞位置 系统备份功能存在路径遍历 下载路径参数未过滤 4.2 漏洞利用 抓取备份下载请求 修改文件路径参数进行目录遍历 示例: /path/to/backup/../../etc/passwd 成功下载系统敏感文件 5. 漏洞修复建议 5.1 文件上传漏洞修复 严格限制上传文件后缀白名单 对上传文件名进行强制重命名 增加文件内容检测机制 5.2 未授权访问修复 为所有管理接口添加权限验证 使用中间件统一检查管理员权限 5.3 任意文件下载修复 限制可下载的文件目录 对文件路径参数进行规范化处理 禁止路径遍历符号(../) 6. 审计总结 本次审计发现了FAKA CMS中三个高危漏洞: 文件上传漏洞(可上传PHP木马) 未授权访问漏洞(可添加管理员账户) 任意文件下载漏洞(可读取系统敏感文件) 漏洞利用链完整,可导致系统完全沦陷。建议用户及时更新系统或按照修复建议进行修补。