极致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中,主要问题点:

  1. 系统允许用户设置webapi变量
  2. 构造请求时直接将webapi变量拼接在URL中,格式为:webapi?version=
  3. 攻击者可以使用#字符来截断version参数,例如:http://attacker.com#

4. 漏洞复现步骤

4.1 环境准备

  1. 搭建本地测试环境:

    • 安装极致CMS v2.5.4
    • 确保安装完成后删除install目录
  2. 准备一个模拟内网的web服务:

    • 放置一个测试文件2.php(内容可包含执行系统命令的代码)

4.2 攻击流程

  1. 设置web_api参数

    • 通过系统提供的接口设置webapi变量为攻击者控制的地址
    • 例如:http://attacker-controlled.com#
  2. 触发SSRF漏洞

    • 访问特定路径触发漏洞
    • 系统会向设置的webapi地址发起请求
  3. 验证攻击成功

    • 观察本地web服务是否收到请求
    • 检查2.php文件是否被执行(如弹出计算器等效果)

5. 漏洞利用限制

  1. 需要有一定的系统访问权限(admin权限)
  2. 依赖于系统对URL解析的处理方式
  3. 受服务器网络环境限制(如防火墙规则)

6. 修复建议

  1. 输入验证

    • 对webapi参数进行严格验证
    • 使用白名单机制限制允许的域名或IP
  2. URL构造改进

    • 避免直接拼接用户输入到URL中
    • 使用urlencode处理特殊字符
  3. 网络访问限制

    • 限制服务器对外请求的能力
    • 禁止访问内网地址段
  4. 代码修复示例

// 修复后的代码应包含对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参数发起对内部网络的请求,可能导致内网服务探测、信息泄露或内部服务攻击。建议用户及时更新或按照修复建议进行修补。

极致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处理特殊字符 网络访问限制 : 限制服务器对外请求的能力 禁止访问内网地址段 代码修复示例 : 7. 总结 极致CMS v2.5.4版本的PluginsController.php文件存在SSRF漏洞,攻击者可通过精心构造的webapi参数发起对内部网络的请求,可能导致内网服务探测、信息泄露或内部服务攻击。建议用户及时更新或按照修复建议进行修补。