梦想cms漏洞合集
字数 1058 2025-08-07 08:21:54
梦想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
' 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
漏洞分析
-
触发条件:
- 需要后台管理员权限
- 通过
$_POST['fid']传递参数
-
漏洞原理:
- 系统未对文件路径进行严格校验
- 可通过目录穿越实现任意文件删除
- 关键代码:
unlink($fileInfo[1])
利用方法
POST请求:
type=0&fid%5B%5D=1#####/filepath
三、任意文件读取漏洞
漏洞位置
- 文件:
c/admin/TemplateAction.class.php第81行
漏洞分析
-
触发条件:
- 需要后台管理员权限
- 通过GET参数直接传递文件路径
-
漏洞原理:
- 直接读取文件内容未做路径限制
- 可结合目录穿越读取系统任意文件
- 关键方法:
file::getcon()
利用方法
直接构造路径穿越读取/etc/passwd等敏感文件
四、漏洞修复建议
-
SQL注入修复:
- 使用预处理语句替代字符串拼接
- 加强
filter_sql方法的过滤逻辑
-
文件操作漏洞修复:
- 限制文件操作目录范围
- 对用户输入路径进行规范化处理
- 增加权限检查机制
五、测试注意事项
-
测试版本:
- 漏洞存在于1.40及以下版本
- 1.41版本(2021年5月)已修复
-
测试技巧:
- 对于SQL注入,优先尝试报错注入
- 文件操作漏洞需要管理员权限
- 注意WAF绕过技巧(双重编码等)
-
法律风险:
- 测试前务必获得授权
- 禁止在非授权环境下测试
六、总结
梦想CMS的这些漏洞展示了常见的安全问题:
- 未过滤的用户输入直接进入SQL查询
- 文件操作缺乏严格的路径检查
- 后台功能缺乏足够的权限验证
这些漏洞的组合利用可能导致严重后果,建议用户及时升级到最新版本。