wuzhicms的在初次尝试审计
字数 1551 2025-08-07 08:22:12
WuzhiCMS 审计与漏洞分析教学文档
一、WuzhiCMS 简介
WuzhiCMS 是一个基于 MVC 架构的 PHP 内容管理系统,官网为 https://www.wuzhicms.com/,目前已停止更新。该系统采用典型的 MVC(Model-View-Controller)设计模式:
- MVC 架构:模型(Model)-视图(View)-控制器(Controller)的分离
- 路由参数:
m:模块/文件夹f:文件v:方法
二、审计工具准备
- Seay源代码审计系统
- PHPStorm IDE
- PHPStudy 本地环境
- Burp Suite 抓包工具
三、漏洞分析与利用
1. 后台SQL注入(第一处)
漏洞文件:core/copyfrom.php
漏洞点:
- 使用
$GLOBALS获取keywords参数 - 直接拼接SQL语句,无过滤
利用方法:
- 访问后台广告管理搜索功能
- 构造Payload:
SELECT COUNT(*) AS num FROM wz_promote_place WHERE siteid='1' AND name LIKE '%1%' or extractvalue(1,concat(0x7e,(select database())))%23 - 闭合方式:
%'%23
修复建议:
- 使用预处理语句
- 对输入参数进行严格过滤
2. 前台SQL注入(第二处)
漏洞文件:api/sms_check.php
漏洞点:
- 通过
$GLOBALS['param']获取参数 - 仅使用
strip_tags()过滤HTML标签 array2sql()函数过滤不彻底
利用方法:
- 直接访问API接口:
http://example.com/wuzhicms/api/sms_check.php?param=1' - 报错注入Payload:
http://example.com/wuzhicms/api/sms_check.php?param=1'+or+extractvalue(1,concat(0x7e,(select+database())))%23
修复建议:
- 增加参数类型检查
- 实现完整的SQL注入过滤
3. 后台SQL注入(第三处)
漏洞文件:core/copyfrom.php
漏洞点:
listing()函数中get_list()调用keywords参数直接拼接SQL
利用方法:
http://example.com/wuzhicms/index.php?m=core&f=copyfrom&v=listing&_su=wuzhicms&keywords=1%' or extractvalue(1,concat(0x7e,(select database())))%23
4. 后台任意文件删除
漏洞文件:attachment/index.php
漏洞点:
del()函数中使用unlink()删除文件url参数通过$GLOBALS获取- 路径拼接无限制
利用方法:
- 创建测试文件
- 构造删除请求:
http://example.com/wuzhicms/index.php?m=attachment&f=index&v=del&_su=wuzhicms&url=../test.txt
修复建议:
- 限制删除路径范围
- 检查文件权限
5. 后台任意文件上传
漏洞文件:多处使用set_cache()函数
漏洞点:
file_put_contents()直接写入文件- 内容完全可控
- 路径固定但可预测
利用方法:
- 通过缓存设置功能写入文件
- 访问缓存文件获取写入内容
修复建议:
- 限制缓存文件内容
- 实现内容校验
6. 信息泄露
漏洞点:
- 后台存在暴露的
phpinfo()页面
风险:
- 泄露服务器配置信息
- 可能暴露敏感路径
四、审计技巧总结
-
全局搜索关键函数:
- SQL相关:
select,get_one,get_list - 文件操作:
unlink,file_put_contents - 危险函数:
eval,system等
- SQL相关:
-
参数追踪:
- 关注
$GLOBALS的使用 - 追踪参数传递路径
- 检查过滤完整性
- 关注
-
MVC架构理解:
- 理解
m,f,v参数作用 - 掌握控制器与模型的调用关系
- 理解
-
测试验证:
- 结合功能点测试
- 使用多种Payload验证
五、防御建议
-
输入过滤:
- 实现统一的输入过滤机制
- 对特殊字符进行转义
-
安全编码:
- 使用预处理语句
- 最小权限原则
-
架构安全:
- 前后台严格分离
- 重要操作二次验证
-
日志监控:
- 记录敏感操作
- 实现异常行为检测
六、学习价值
通过审计WuzhiCMS,可以学习到:
- MVC架构的安全审计方法
- 多种类型漏洞的发现技巧
- 从代码到实际利用的完整过程
- 企业级CMS的常见安全问题
此文档可作为Web安全学习和代码审计的实践参考,建议在实际环境中验证时遵守法律法规,仅在授权环境下进行测试。