记一次黑盒摸鱼意外挖到的0day
字数 1075 2025-08-09 22:00:34
黑盒测试中发现越权漏洞的实战教学
漏洞概述
本文记录了一个通过黑盒测试发现的用户ID越权漏洞,攻击者可以通过修改userId参数越权访问管理员账户。该漏洞已提交至CNVD并获得证书,涉及站点已修复。
漏洞挖掘过程详解
1. 目标发现
- 使用FOFA搜索引擎搜索关键词"系统管理"
- 从结果中筛选出目标系统(xx中心)
2. 初始渗透测试
-
弱口令测试:
- 发现密码字段加密且加密逻辑不在前端
- 用户名字段未加密
- 使用常见弱口令"123456"配合用户名字典测试
- 成功使用"test"用户登录
-
系统功能分析:
- 登录后界面为普通用户界面
- 重点测试"信息保存"功能
- 测试SQL注入和XSS漏洞未果
3. 越权漏洞发现
-
参数分析:
- 发现userId参数存在潜在风险
- 测试修改loginName和userName为"admin"无效果
- 测试修改userId参数
-
暴力枚举测试:
- 使用Intruder工具枚举userId从001980到002100
- 发现当userId=002000时可越权至admin账户
4. 漏洞影响评估
-
资产发现:
- 通过系统特征在FOFA搜索发现281个同类站点
- 确认系统为某公司开发并广泛部署
-
漏洞利用效果:
- 普通用户可通过修改userId参数提升至管理员权限
- 影响范围广泛,符合CNVD证书颁发标准
关键知识点总结
1. 黑盒测试方法论
- 目标选择:通过搜索引擎关键字筛选易出漏洞的管理系统
- 弱口令策略:当密码加密时,可转向用户名枚举
- 参数测试:重点关注用户标识类参数(userId等)
2. 越权漏洞挖掘技巧
- ID枚举:对数字型ID进行系统化枚举测试
- 参数修改:测试修改不同身份标识参数的效果
- 响应分析:注意页面看似无变化时的权限提升
3. 漏洞价值最大化
- 资产关联:通过系统特征搜索同类站点
- 影响评估:确认漏洞的广泛性和严重性
- 漏洞提交:符合标准的漏洞可提交至CNVD等平台
防御建议
-
输入验证:
- 对userId等敏感参数进行严格校验
- 实现服务端参数白名单机制
-
权限控制:
- 实施基于角色的访问控制(RBAC)
- 每次敏感操作前重新验证用户权限
-
会话管理:
- 避免仅依赖前端参数判断用户身份
- 使用不可预测的会话标识符
-
安全开发:
- 避免使用连续数字作为用户ID
- 实现权限检查的中间件层
总结
本案例展示了如何通过系统化的黑盒测试方法发现高危越权漏洞。关键点在于:
- 不放过任何身份标识参数
- 系统化的枚举测试
- 对发现漏洞的资产进行关联评估
- 及时提交漏洞获取认可
这种漏洞挖掘思路可应用于各类Web应用的安全测试中。