逻辑漏洞挖掘初步总结篇
字数 1495 2025-08-18 11:37:57
逻辑漏洞挖掘系统化指南
一、逻辑漏洞概述
逻辑漏洞是指由于程序逻辑输入管控不严,导致程序不能正常处理或处理错误的漏洞类型。主要出现在以下场景:
- 用户注册/登录流程
- 密码找回功能
- 信息查看接口
- 交易支付环节
核心特征:能够突破系统既定规则限制的漏洞,如通过修改参数绕过验证机制。
二、漏洞挖掘方法论
1. 通用测试框架
- 前端测试优先:先检查前端验证机制
- 后端验证测试:再测试后端逻辑缺陷
- BurpSuite工具链:全程使用BurpSuite进行请求拦截和修改
2. 测试流程
- 完整走一遍目标业务流程
- 对每个请求/响应包进行标记分类
- 分析返回包中的关键参数(true/false判断、验证码等)
- 尝试修改关键参数进行绕过测试
三、注册功能漏洞挖掘
1. 前端验证绕过
- 测试方法:
- 拦截注册流程的返回包
- 查找包含验证状态(如false)的响应
- 尝试将false修改为true
- 漏洞原理:仅依赖前端验证,后端未做二次校验
2. 短信轰炸漏洞
- 测试步骤:
- 重放发送验证码的请求
- 观察短时间内是否收到多条短信
- 根本原因:后端未对短信发送频率做限制
3. 手机号篡改攻击
- 攻击流程:
- 使用自己手机号获取有效验证码
- 在注册请求中拦截并修改手机号参数
- 使用原验证码提交注册
- 漏洞本质:后端仅验证验证码有效性,未校验手机号与验证码的匹配关系
4. 邮箱注册特殊测试
- 测试要点:修改发送包中的邮箱参数尝试覆盖注册
四、登录功能漏洞挖掘
1. 验证码绕过技术
- 图片验证码测试:
- 使用正确凭证登录后重放请求
- 验证系统是否实际校验验证码
- 短信验证码爆破:
- 将登录请求发送至Intruder模块
- 设置验证码参数为爆破位置
- 使用数值型载荷(0000-9999范围)
- 执行爆破获取有效验证码
2. 手机号篡改攻击
- 操作方式:同注册功能中的手机号篡改
- 攻击目的:实现任意用户登录而非注册
3. 用户参数篡改
- 测试方法:
- 对比不同账户的登录返回包
- 识别用户标识参数(如userID)
- 尝试修改这些参数提升权限
五、密码找回漏洞挖掘
1. 验证码爆破
- 技术细节:同登录功能的验证码爆破技术
2. 手机号/邮箱篡改
- 两种攻击方式:
- 提交时修改目标手机号/邮箱
- 修改验证码发送请求中的接收方参数
3. Token参数测试
- 测试要点:检查token是否可预测或重用
六、支付与越权漏洞
1. 支付接口测试
- 关键测试点:
- 支付金额参数篡改
- 支付状态修改
- 重复支付利用
2. 信息越权查看
- 测试方法:
- 使用两个账户对比请求/响应
- 识别用户标识参数
- 修改参数尝试获取他人数据
- 常见漏洞点:
- 用户信息返回接口
- 订单查询接口
- 个人资料访问接口
七、工具使用要点
BurpSuite关键功能
- Proxy模块:请求拦截和修改
- Repeater模块:请求重放测试
- Intruder模块:参数爆破
- Comparer工具:响应差异分析
八、防御建议
- 前后端双重验证:所有关键操作必须后端验证
- 请求参数签名:防止参数篡改
- 验证码时效控制:设置短有效期且单次有效
- 频率限制:对短信发送等操作实施频率控制
- 权限校验:所有数据访问必须校验所属关系
九、思维导图要点总结
- 测试流程系统化:按照注册→登录→密码找回→支付/越权的顺序
- 参数修改全覆盖:所有接收参数都应视为可被篡改
- 对比测试方法论:使用多账户对比发现差异点
- 自动化工具辅助:结合BurpSuite提高测试效率
本指南提供了逻辑漏洞挖掘的系统化方法,实际测试中应根据具体业务场景灵活调整测试策略,重点关注意义重大的业务环节和敏感操作。