对某cms精彩刺激的黑盒渗透测试
字数 1865 2025-08-15 21:30:23
CMS黑盒渗透测试实战教学文档
1. 测试目标概述
本次渗透测试针对一款常用于网络商城站点的CMS系统,发现了四个关键漏洞:未授权访问、IDOR(平行越权)、密码重置漏洞以及XSS+文件写入Getshell组合漏洞。
2. 漏洞1:未授权访问
2.1 测试步骤
-
初始信息收集:
- 首先检查
robots.txt文件(常见路径),但返回404,表明未部署
- 首先检查
-
目录扫描:
- 使用御剑扫描工具发现敏感路径:
/admin/editoradmin/upload.asp
- 使用御剑扫描工具发现敏感路径:
-
漏洞验证:
- 直接访问该URL,确认无需认证即可访问
- 可对目录内容进行下载、删除等敏感操作
- 该目录存放网站配置文件(主要是图片文件)
2.2 漏洞原理
- 后台管理目录未设置访问权限控制
- 敏感功能未进行身份验证
2.3 修复建议
- 对后台管理目录设置严格的访问控制
- 实现身份验证机制
- 敏感操作需进行权限校验
3. 漏洞2:平行越权(IDOR)
3.1 测试环境准备
- 注册两个测试账号:
- A账号:username(攻击者)
- B账号:username1(受害者)
3.2 测试步骤
- 使用A账号登录,进入会员管理页面
- 点击"修改密码"并用Burp拦截请求
- 观察请求参数:
username=username - 修改参数为
username=username1(B账号) - 发送修改后的请求
- 成功越权修改B账号密码
3.3 漏洞原理
- 后端仅依赖前端提交的用户名参数进行身份识别
- 未校验当前会话用户与修改目标的匹配关系
3.4 修复建议
- 修改密码时应校验会话中的用户身份
- 禁止通过参数直接指定修改目标
- 实施CSRF防护措施
4. 漏洞3:密码重置漏洞
4.1 密码重置流程
- 输入用户名
- 验证密保答案
- 输入新密码
4.2 测试步骤
- 使用A账号(username)发起密码重置
- 输入正确的密保答案(11111111)
- 在重置密码步骤拦截请求(Burp)
- 观察请求头和Referer中的参数:
usernam=username - 修改为
username=username1(B账号) - 发送请求,成功重置B账号密码
- 验证:使用新密码(123456789)成功登录B账号
4.3 漏洞原理
- 密码重置流程仅在前端进行身份验证
- 后端未校验重置令牌与目标用户的关联性
- 关键参数可通过请求修改
4.4 修复建议
- 重置密码时应绑定会话与目标用户
- 使用一次性令牌机制
- 后端严格校验各步骤的连续性
5. 漏洞4:XSS+文件写入Getshell
5.1 反射型XSS漏洞
- 发现位置:网站搜索模块
- Payload:`` 成功弹窗
- 利用方式:
- 构造XSS平台POC
- 通过网站留言功能发送到后台
- 等待管理员访问获取cookie
5.2 文件写入Getshell
-
后台功能利用:
- 使用获取的管理员cookie进入后台
- 发现数据库备份功能
-
写入Webshell:
- 发布新文章,内容为数据库备份专用一句话:
攠攠數畣畣整爠爠煥煥敵瑳瑳∨∨≡愾愾 - 执行数据库备份操作
- 获取备份文件地址(包含Webshell)
- 使用XISE连接成功获取Webshell
- 发布新文章,内容为数据库备份专用一句话:
5.3 漏洞原理
- 搜索功能未对用户输入进行过滤
- 后台数据库备份功能未校验文件内容
- 备份文件可被直接访问执行
5.4 修复建议
- 对所有用户输入进行严格过滤
- 实现CSRF防护机制
- 数据库备份功能应限制文件类型和内容
- 备份文件不应保存在web可访问目录
6. 总结与防护建议
6.1 漏洞共性
- 过度信任客户端提交的参数
- 缺乏完整的权限验证机制
- 关键功能未实施安全防护
6.2 全面防护措施
-
输入验证:
- 实施白名单机制过滤所有用户输入
- 对特殊字符进行转义处理
-
权限控制:
- 实施最小权限原则
- 关键操作需二次验证
- 会话管理加强
-
安全开发:
- 遵循安全编码规范
- 定期进行安全审计
- 实施安全开发生命周期(SDL)
-
运维防护:
- 定期更新系统补丁
- 实施WAF防护
- 日志监控与审计
7. 测试方法论
- 信息收集阶段:robots.txt检查、目录扫描
- 功能测试阶段:逐项测试各功能模块
- 权限测试:水平越权、垂直越权测试
- 输入验证:XSS、SQL注入等测试
- 组合漏洞利用:多漏洞串联利用
8. 工具推荐
- 目录扫描:御剑、DirBuster
- 代理工具:Burp Suite、Fiddler
- XSS利用:XSS平台、BeEF
- Webshell管理:中国菜刀、XISE
9. 法律与道德提醒
- 所有测试必须获得授权
- 不得利用漏洞进行非法操作
- 发现漏洞应及时报告
- 遵守网络安全法律法规