极致CMS最新版本PluginsController.php中SSRF漏洞挖掘
字数 1245 2025-08-29 08:30:36
极致CMS v2.5.4 PluginsController.php SSRF漏洞分析报告
1. 系统概述
极致CMS(JIZHICMS)是由中国极致网络科技公司开发的一套开源内容管理系统(CMS)。
- 当前版本:v2.5.4
- 源码地址:GitHub仓库
- 系统要求:
- PHP 5.6+
- MySQL 4.8+
- 数据编码:utf-8 或 utf8-general-ci
- 必须支持伪静态
- 支持服务器:Apache、Nginx、IIS
2. 漏洞基本信息
- 漏洞类型:服务器端请求伪造(SSRF)
- 漏洞文件:
app/admin/c/PluginsController.php - 影响版本:v2.5.4最新版本
3. 漏洞详细分析
3.1 漏洞位置
漏洞存在于PluginsController.php文件中,主要问题在于对webapi变量的处理不当。
3.2 漏洞原理
攻击者可以控制webapi变量,系统会将此变量直接用于构造请求URL。由于URL拼接方式存在缺陷,攻击者可以通过特殊字符(如#)来注释掉后续参数,从而完全控制请求的目标地址。
3.3 关键代码分析
漏洞代码位于PluginsController.php中,主要问题点:
- 系统允许用户设置webapi变量
- 构造请求时直接将webapi变量拼接在URL中,格式为:
webapi?version= - 攻击者可以使用#字符来截断version参数,例如:
http://attacker.com#
4. 漏洞复现步骤
4.1 环境准备
-
搭建本地测试环境:
- 安装极致CMS v2.5.4
- 确保安装完成后删除install目录
-
准备一个模拟内网的web服务:
- 放置一个测试文件2.php(内容可包含执行系统命令的代码)
4.2 攻击流程
-
设置web_api参数:
- 通过系统提供的接口设置webapi变量为攻击者控制的地址
- 例如:
http://attacker-controlled.com#
-
触发SSRF漏洞:
- 访问特定路径触发漏洞
- 系统会向设置的webapi地址发起请求
-
验证攻击成功:
- 观察本地web服务是否收到请求
- 检查2.php文件是否被执行(如弹出计算器等效果)
5. 漏洞利用限制
- 需要有一定的系统访问权限(admin权限)
- 依赖于系统对URL解析的处理方式
- 受服务器网络环境限制(如防火墙规则)
6. 修复建议
-
输入验证:
- 对webapi参数进行严格验证
- 使用白名单机制限制允许的域名或IP
-
URL构造改进:
- 避免直接拼接用户输入到URL中
- 使用urlencode处理特殊字符
-
网络访问限制:
- 限制服务器对外请求的能力
- 禁止访问内网地址段
-
代码修复示例:
// 修复后的代码应包含对webapi的验证
$allowed_domains = ['example.com', 'trusted-domain.com'];
$parsed = parse_url($webapi);
if(!in_array($parsed['host'], $allowed_domains)) {
die('Invalid webapi address');
}
7. 总结
极致CMS v2.5.4版本的PluginsController.php文件存在SSRF漏洞,攻击者可通过精心构造的webapi参数发起对内部网络的请求,可能导致内网服务探测、信息泄露或内部服务攻击。建议用户及时更新或按照修复建议进行修补。