记一次详细的代码审计
字数 1019 2025-08-05 12:50:18

极致CMS v1.7漏洞分析与利用指南

前言

本文详细分析了极致CMS v1.7版本中存在的多个安全漏洞,包括SQL注入、XSS跨站脚本攻击和任意文件删除漏洞。通过对MVC架构的分析,深入理解漏洞产生的原因和利用方式。

MVC架构分析

核心架构

  1. 入口文件index.php定义了应用目录和框架加载路径
  2. 框架核心文件FrPHP/Fr.php负责初始化应用
  3. 路由处理流程:
    • 接收URL参数(141行)
    • 处理控制器和方法名(206行)
    • 移除index.php前缀(212行)
    • 拆分URL为数组(231行)
    • 默认控制器设置为Home(257-264行)

关键特性

  • 默认控制器名:Home
  • 默认方法名:jizhi
  • 插件目录默认为空
  • 控制器目录:\Home\c\
  • 模型目录:\Home\m\

漏洞分析

SQL注入漏洞

位置1:HomeController.php中的jizhi方法

  • 漏洞代码
    $url = explode('/', $url);
    $r = M('nav')->find(['url'=>$url[0]]);
    
  • 利用条件
    • 通过URL传递参数
    • 默认控制器机制允许任意输入被转换为Home

位置2:HomeController.php中的jizhi_details方法

  • 通过传值进行SQL注入
  • 未对输入进行过滤

利用方式

构造恶意URL:

index.php/恶意输入/...

由于默认控制器机制,恶意输入会被处理但最终控制器仍为Home

XSS跨站脚本漏洞

位置1:UserController.php的release方法

  • 漏洞代码
    $data['body'] = $this->frparam('body',4); // 参数4表示不进行HTML实体编码
    $w['body'] = $data['body'];
    
  • 利用条件
    • 提交POST数据
    • molds参数设置为article

利用Payload

tid=2&article=asd&body=<script>alert(1)</script>&id=4&molds=article&title=qwe&sad=qwe

位置2:ErrorController.php

  • 漏洞代码
    直接输出未过滤的msg参数
  • 利用方式
    ?msg=<script>alert(1)</script>
    

任意文件删除漏洞

位置:SysController.php的deletePicAll方法

  • 漏洞代码
    $pictures = M('pictures')->findAll('id in(' . $data . ')');
    foreach($pictures as $v){
        if(strpos($v['litpic'],'http')===false){
            unlink('.'.$v['litpic']);
        }
    }
    
  • 利用条件
    • 控制data参数
    • 绕过单双引号过滤

利用方式

使用16进制编码绕过引号过滤:

data=0x恶意SQL代码

漏洞修复建议

  1. SQL注入修复

    • 使用预处理语句
    • 对用户输入进行严格过滤
    • 修改默认控制器机制
  2. XSS修复

    • 对所有输出进行HTML实体编码
    • 实现内容安全策略(CSP)
    • 对富文本内容使用白名单过滤
  3. 文件删除修复

    • 严格验证文件路径
    • 实现权限检查
    • 禁止用户控制完整文件路径

总结

极致CMS v1.7存在多处严重安全漏洞,攻击者可利用这些漏洞进行数据窃取、网站篡改和服务器破坏。开发者应尽快修复这些问题,管理员应及时更新到安全版本。

极致CMS v1.7漏洞分析与利用指南 前言 本文详细分析了极致CMS v1.7版本中存在的多个安全漏洞,包括SQL注入、XSS跨站脚本攻击和任意文件删除漏洞。通过对MVC架构的分析,深入理解漏洞产生的原因和利用方式。 MVC架构分析 核心架构 入口文件 index.php 定义了应用目录和框架加载路径 框架核心文件 FrPHP/Fr.php 负责初始化应用 路由处理流程: 接收URL参数(141行) 处理控制器和方法名(206行) 移除 index.php 前缀(212行) 拆分URL为数组(231行) 默认控制器设置为 Home (257-264行) 关键特性 默认控制器名: Home 默认方法名: jizhi 插件目录默认为空 控制器目录: \Home\c\ 模型目录: \Home\m\ 漏洞分析 SQL注入漏洞 位置1:HomeController.php中的jizhi方法 漏洞代码 : 利用条件 : 通过URL传递参数 默认控制器机制允许任意输入被转换为 Home 位置2:HomeController.php中的jizhi_ details方法 通过传值进行SQL注入 未对输入进行过滤 利用方式 构造恶意URL: 由于默认控制器机制,恶意输入会被处理但最终控制器仍为 Home XSS跨站脚本漏洞 位置1:UserController.php的release方法 漏洞代码 : 利用条件 : 提交POST数据 molds 参数设置为 article 利用Payload 位置2:ErrorController.php 漏洞代码 : 直接输出未过滤的 msg 参数 利用方式 : 任意文件删除漏洞 位置:SysController.php的deletePicAll方法 漏洞代码 : 利用条件 : 控制 data 参数 绕过单双引号过滤 利用方式 使用16进制编码绕过引号过滤: 漏洞修复建议 SQL注入修复 : 使用预处理语句 对用户输入进行严格过滤 修改默认控制器机制 XSS修复 : 对所有输出进行HTML实体编码 实现内容安全策略(CSP) 对富文本内容使用白名单过滤 文件删除修复 : 严格验证文件路径 实现权限检查 禁止用户控制完整文件路径 总结 极致CMS v1.7存在多处严重安全漏洞,攻击者可利用这些漏洞进行数据窃取、网站篡改和服务器破坏。开发者应尽快修复这些问题,管理员应及时更新到安全版本。