逻辑漏洞

423 字

逻辑漏洞

逻辑漏洞不是让程序崩掉,而是让程序“认真地做错事”。它利用的是业务规则、流程顺序和信任边界的缺口。

常见场景

场景 典型问题
价格与订单 客户端可改金额、数量、优惠券、运费
注册与邀请 邀请码重复使用、手机号/邮箱未真正验证
找回密码 验证码可爆破、Token 不失效、可改目标账号
支付与退款 回调可信任不当、状态可重复提交
积分与库存 并发请求导致重复领取、超卖、负库存
审批与流程 跳过前置步骤、低权限触发高权限动作

分析方法

先画出正常业务流程,再观察每一步依赖哪些数据、由谁提交、服务端是否重新计算。重点看“客户端传来的关键值”以及“状态流转是否只能按顺序发生”。

逻辑漏洞的测试往往不是找一个万能 payload,而是做对比:不同账号、不同角色、不同订单、不同状态之间,服务端有没有守住同一套规则。

防护思路

关键业务值由服务端计算,流程状态由服务端校验,权限判断绑定用户身份和资源归属。对支付、退款、优惠、库存、验证码等敏感操作加入幂等、频率限制、审计日志和异常告警。

Licensed under CC BY-NC-SA 4.0