代码审计入门之BlueCMS v1.6 sp1
字数 1348 2025-08-18 11:38:41
BlueCMS v1.6 sp1 代码审计教学文档
0x00 环境准备
所需工具:
- Phpstudy(集成环境)
- BlueCMS v1.6 sp1源码
- 代码审计工具(推荐Seay源代码审计系统)
- Burp Suite(用于抓包测试)
0x01 安装漏洞审计
漏洞描述
CMS安装后install目录未删除,可重复安装导致数据重置
验证方法
- 正常安装CMS后
- 再次访问install目录
- 观察是否能重新安装系统
风险
攻击者可重置整个网站数据,设置新的管理员账号
0x02 用户注册功能审计
1. 用户名枚举漏洞
发现过程:
- 注册时抓包发现检测用户名的请求
- 请求中包含
user_name参数
利用方法:
- 对
user_name参数进行爆破 - 获取已存在的用户名列表
2. 存储型XSS漏洞
位置: 用户注册邮箱字段
**验证步骤:
- 注册用户时拦截数据包
- 修改email参数为XSS payload:
<script>alert(1)</script> - 成功弹窗证明漏洞存在
未过滤原因:
- INSERT语句直接拼接用户输入
- 无htmlspecialchars等过滤函数
3. SQL注入漏洞
注入点: 用户注册功能
Payload示例:
%df' or updatexml(1,concat(0x7e,(SELECT database())),1,1)#
绕过方法:
- 使用宽字节注入绕过魔术引号:
%df'
高级利用:
通过插入多行数据泄露信息:
%df',1,1),(100,0x6162717765,md5(123456),(select database()),1,1)#
0x03 登录功能审计
1. SQL注入(万能密码)
注入点: 登录表单
Payload:
%df') or 1=1#
验证方法:
- 使用该payload作为密码尝试登录
- 成功登录任意账户
2. 修改资料处漏洞
- 同样存在XSS和SQL注入
0x04 评论系统审计
1. IP头注入漏洞
漏洞原理:
- 评论系统记录用户IP
- IP通过
getip()函数获取 - 优先获取
HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR
利用方法:
- 添加请求头:
X-Forwarded-For: 1'# - 触发SQL报错
0x05 后台漏洞
1. 数据库备份泄露
发现过程:
- 后台执行数据库备份
- 备份文件按日期命名(如backup_20250816.sql)
- 爆破备份文件路径可下载
风险:
- 泄露管理员账号密码(MD5存储,可破解)
0x06 文件包含漏洞
1. 本地文件包含
位置: user.php的pay参数
利用条件:
- 需要能上传文件(如头像上传图片马)
- Windows系统路径长度限制可利用
Payload:
pay=../../1.txt...................................(256个点)
利用步骤:
- 上传图片马到可访问目录
- 通过包含漏洞执行图片马
0x07 审计方法论总结
1. 黑盒+白盒结合
- 先功能点分析
- 再追踪参数传递
2. 核心关注点
- 所有用户输入点
- 数据库操作语句
- 文件包含/上传功能
- 安装/配置相关功能
3. 常见测试方法
- 输入特殊字符测试过滤
- 追踪参数传递流程
- 检查敏感函数调用
- 验证安装/配置安全性
0x08 防御建议
- 安装后删除install目录
- 对所有用户输入进行过滤
- 使用预处理语句防止SQL注入
- 限制IP头信任范围
- 备份文件随机命名并限制访问
- 禁用危险函数如include的动态包含
本教学文档基于ZKAQ聂风的原创文章整理,重点提取了BlueCMS v1.6 sp1的代码审计关键点,可作为PHP代码审计入门学习材料。