[渗透测试实战]某高校支付系统存在水平越权获取身份证号码问题
字数 1255 2025-08-10 16:34:22
高校支付系统水平越权漏洞分析与防护教学文档
漏洞概述
本案例分析了某高校支付系统存在的水平越权漏洞,攻击者可通过构造特定请求获取其他用户的身份证号码等敏感信息。该漏洞属于Web应用程序常见的安全问题,涉及数据泄露风险。
漏洞发现过程
1. 初始信息收集
- 通过扫描系统生成的二维码进入目标站点
- 初步观察系统功能:支付系统涉及用户身份验证和缴费功能
2. 请求分析
- 使用抓包工具拦截系统请求
- 发现三个关键数据包:
- 第一个数据包:传输sfz(身份证)号码使用BASE64加密,访问文件为checkLogin(验证登录状态接口)
- 第二个数据包:功能暂不明确
- 第三个数据包:包含billId字段,服务器返回敏感数据
3. 漏洞确认
- 对loginInfo字段进行base64解密后发现包含身份证号
- 通过构造请求可获取其他用户敏感信息
- 估算数据泄露规模:约10万+用户受影响,已确认至少泄露3000人以上
漏洞技术细节
水平越权机制
- 系统未对用户权限进行严格校验
- 攻击者可通过修改请求参数(billId等)访问其他用户数据
- 数据传输仅使用base64编码(非加密),可轻易解码获取明文
其他安全问题
-
缺乏防护机制:
- 前端未采用验证码防止重复提交
- 数据传输未加密(仅base64编码)
-
未授权访问风险:
- 学生可任意提交评论,存在存储型XSS潜在风险
漏洞验证方法
测试步骤
- 使用合法账户登录系统
- 拦截正常业务请求
- 修改请求中的标识参数(billId等)
- 观察服务器响应是否返回其他用户数据
注意事项
- 测试时应限制获取数据量(案例中不超过5条)
- 避免对系统造成实际影响
- 发现漏洞后应立即停止测试并上报
威胁评级
根据DREAD威胁评级模型:
- Damage(损害程度): 2
- Reproducibility(可复现性): 3
- Exploitability(可利用性): 3
- Affected users(影响用户数): 2
- Discoverability(可发现性): 3
总分: 13 (高危)
修复建议
1. 权限控制
- 实现严格的用户权限校验
- 服务端对每个请求进行身份和权限验证
- 采用基于角色的访问控制(RBAC)模型
2. 数据保护
- 敏感数据传输应使用HTTPS
- 存储的敏感信息应加密(如身份证号)
- 避免在前端暴露不必要的用户标识符
3. 防护机制
- 添加验证码防止自动化攻击
- 实施请求频率限制
- 对用户输入进行严格过滤,防止XSS
4. 安全开发
- 遵循安全编码规范
- 进行定期的安全代码审计
- 实施敏感操作日志记录
总结与启示
- 水平越权漏洞是Web应用常见高危漏洞,开发时应始终贯彻"不信任用户输入"原则
- 敏感数据保护需要多层次防护,包括传输加密、存储加密和访问控制
- 安全测试应成为系统上线前的必要环节,特别是涉及用户敏感信息的系统
- 漏洞响应流程应规范化,发现漏洞后应及时修复并通知受影响用户
本案例展示了即使是高校等教育机构的系统也可能存在严重安全漏洞,提醒开发者和运维人员必须重视系统安全防护。