逻辑漏洞
逻辑漏洞不是让程序崩掉,而是让程序“认真地做错事”。它利用的是业务规则、流程顺序和信任边界的缺口。
常见场景
| 场景 | 典型问题 |
|---|---|
| 价格与订单 | 客户端可改金额、数量、优惠券、运费 |
| 注册与邀请 | 邀请码重复使用、手机号/邮箱未真正验证 |
| 找回密码 | 验证码可爆破、Token 不失效、可改目标账号 |
| 支付与退款 | 回调可信任不当、状态可重复提交 |
| 积分与库存 | 并发请求导致重复领取、超卖、负库存 |
| 审批与流程 | 跳过前置步骤、低权限触发高权限动作 |
分析方法
先画出正常业务流程,再观察每一步依赖哪些数据、由谁提交、服务端是否重新计算。重点看“客户端传来的关键值”以及“状态流转是否只能按顺序发生”。
逻辑漏洞的测试往往不是找一个万能 payload,而是做对比:不同账号、不同角色、不同订单、不同状态之间,服务端有没有守住同一套规则。
防护思路
关键业务值由服务端计算,流程状态由服务端校验,权限判断绑定用户身份和资源归属。对支付、退款、优惠、库存、验证码等敏感操作加入幂等、频率限制、审计日志和异常告警。