梦想cms漏洞合集
字数 1058 2025-08-07 08:21:54

梦想CMS漏洞分析与利用指南

一、前台SQL注入漏洞

漏洞位置

  • 核心函数:function/common.php中的p函数
  • 触发文件:c/index/TagsAction.class.php

漏洞分析

  1. 漏洞触发流程:

    • 前台通过$_GET接收参数
    • 调用p函数处理数据($pe=1$sql=1
    • 调用string类的delHtml方法去除HTML标签
    • 调用filter_sql方法进行过滤处理
    • 最终在tagsModel类的getNameData方法中拼接SQL语句
  2. 过滤绕过:

    • 系统会转换大小写并检测黑名单关键词
    • 可通过双重URL编码绕过(浏览器默认解码一次)
    • 也可使用<>等特殊字符绕过

利用方法

1. 报错注入POC

' and (updatexml(1,concat(0x7e,(database()),0x7e),1)) and '1'='1

2. Union注入POC

-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3,4,5,6,7,8,9,10,11,12#

3. SQLMap利用

sqlmap.py -r 'burp数据包路径' --technique=E -v3 --tamper=chardoubleencode -p name --dbs

二、任意文件删除漏洞

漏洞位置

  • 文件:c/admin/FileAction.class.php中的delete方法
  • 模型文件:m/FileModel.class.php

漏洞分析

  1. 触发条件:

    • 需要后台管理员权限
    • 通过$_POST['fid']传递参数
  2. 漏洞原理:

    • 系统未对文件路径进行严格校验
    • 可通过目录穿越实现任意文件删除
    • 关键代码:unlink($fileInfo[1])

利用方法

POST请求:
type=0&fid%5B%5D=1#####/filepath

三、任意文件读取漏洞

漏洞位置

  • 文件:c/admin/TemplateAction.class.php第81行

漏洞分析

  1. 触发条件:

    • 需要后台管理员权限
    • 通过GET参数直接传递文件路径
  2. 漏洞原理:

    • 直接读取文件内容未做路径限制
    • 可结合目录穿越读取系统任意文件
    • 关键方法:file::getcon()

利用方法

直接构造路径穿越读取/etc/passwd等敏感文件

四、漏洞修复建议

  1. SQL注入修复:

    • 使用预处理语句替代字符串拼接
    • 加强filter_sql方法的过滤逻辑
  2. 文件操作漏洞修复:

    • 限制文件操作目录范围
    • 对用户输入路径进行规范化处理
    • 增加权限检查机制

五、测试注意事项

  1. 测试版本:

    • 漏洞存在于1.40及以下版本
    • 1.41版本(2021年5月)已修复
  2. 测试技巧:

    • 对于SQL注入,优先尝试报错注入
    • 文件操作漏洞需要管理员权限
    • 注意WAF绕过技巧(双重编码等)
  3. 法律风险:

    • 测试前务必获得授权
    • 禁止在非授权环境下测试

六、总结

梦想CMS的这些漏洞展示了常见的安全问题:

  1. 未过滤的用户输入直接进入SQL查询
  2. 文件操作缺乏严格的路径检查
  3. 后台功能缺乏足够的权限验证

这些漏洞的组合利用可能导致严重后果,建议用户及时升级到最新版本。

梦想CMS漏洞分析与利用指南 一、前台SQL注入漏洞 漏洞位置 核心函数: function/common.php 中的 p 函数 触发文件: c/index/TagsAction.class.php 漏洞分析 漏洞触发流程: 前台通过 $_GET 接收参数 调用 p 函数处理数据( $pe=1 , $sql=1 ) 调用 string 类的 delHtml 方法去除HTML标签 调用 filter_sql 方法进行过滤处理 最终在 tagsModel 类的 getNameData 方法中拼接SQL语句 过滤绕过: 系统会转换大小写并检测黑名单关键词 可通过双重URL编码绕过(浏览器默认解码一次) 也可使用 <> 等特殊字符绕过 利用方法 1. 报错注入POC 2. Union注入POC 3. SQLMap利用 二、任意文件删除漏洞 漏洞位置 文件: c/admin/FileAction.class.php 中的 delete 方法 模型文件: m/FileModel.class.php 漏洞分析 触发条件: 需要后台管理员权限 通过 $_POST['fid'] 传递参数 漏洞原理: 系统未对文件路径进行严格校验 可通过目录穿越实现任意文件删除 关键代码: unlink($fileInfo[1]) 利用方法 三、任意文件读取漏洞 漏洞位置 文件: c/admin/TemplateAction.class.php 第81行 漏洞分析 触发条件: 需要后台管理员权限 通过GET参数直接传递文件路径 漏洞原理: 直接读取文件内容未做路径限制 可结合目录穿越读取系统任意文件 关键方法: file::getcon() 利用方法 四、漏洞修复建议 SQL注入修复: 使用预处理语句替代字符串拼接 加强 filter_sql 方法的过滤逻辑 文件操作漏洞修复: 限制文件操作目录范围 对用户输入路径进行规范化处理 增加权限检查机制 五、测试注意事项 测试版本: 漏洞存在于1.40及以下版本 1.41版本(2021年5月)已修复 测试技巧: 对于SQL注入,优先尝试报错注入 文件操作漏洞需要管理员权限 注意WAF绕过技巧(双重编码等) 法律风险: 测试前务必获得授权 禁止在非授权环境下测试 六、总结 梦想CMS的这些漏洞展示了常见的安全问题: 未过滤的用户输入直接进入SQL查询 文件操作缺乏严格的路径检查 后台功能缺乏足够的权限验证 这些漏洞的组合利用可能导致严重后果,建议用户及时升级到最新版本。