学习逻辑漏洞
(一)Web 安全业务逻辑漏洞(网安重点,渗透必考)
核心定义
代码语法无报错、无注入 XSS 等基础漏洞,但业务流程设计逻辑缺陷,可越权、篡改金额、无限薅羊毛、绕过校验。
1. 越权漏洞(最高频)
水平越权
同权限用户访问他人数据场景:订单接口/order?uid=1001,修改 uid=1002 查看别人订单。修复:后端校验当前登录用户 ID,不从前端直接取值。
垂直越权
低权限账号操作管理员功能场景:普通用户抓包访问/admin/userlist直接查看后台。修复:接口统一鉴权角色权限。
2. 支付逻辑漏洞(高危,可薅钱)
- 金额前端可控下单时 price=99 抓包改成 0.01,支付低价买高价商品。修复:金额、商品单价后端写死校验,拒绝前端传价。
- 重复支付 / 重复下单无订单状态锁,刷新页面多次扣款、多发货。
- 优惠券叠加逻辑缺陷满减券 + 无门槛券无互斥限制,抵扣后金额为负数,平台倒贴。
- 退款逻辑漏洞收货后全额退款,商品不用退回;多次提交退款申请重复到账。
3. 验证码 / 短信逻辑漏洞
- 验证码不校验有效期、可重复使用
- 验证码返回前端明文(响应包直接看到 code:888888)
- 无频率限制:无限刷短信轰炸他人手机号
- 绕过验证码:提交参数
code=null/ 删除 code 参数直接登录
4. 密码找回逻辑漏洞
- 用户 ID 可控,遍历他人手机号重置任意账号密码;
- 找回凭证(token)无时效、无绑定设备;
- 仅校验手机号,不校验实名 / 身份证。
5. 注册逻辑漏洞
- 手机号可重复注册,无限注册小号薅新人福利;
- 身份证、实名信息前端校验,后端不二次核验。
6. 上传逻辑漏洞(逻辑绕过)
前端限制 jpg/png,抓包修改后缀、修改 Content-Type 绕过上传木马。
7. 订单 / 活动薅羊毛类逻辑
- 活动无用户参与次数限制,无限刷奖励;
- 客户端控制抽奖概率,抓包修改 100% 中奖;
- 分享活动仅前端记录分享次数,抓包改 count=999 直接领奖。
8. 会话逻辑漏洞
- Session 未绑定 IP、设备,劫持 cookie 即可登录;
- 修改密码后旧 session 不失效,老 cookie 仍能访问账号。
9. 接口重放漏洞
无请求唯一标识(nonce、timestamp 签名),抓包重复发包重复生效:重复下单、重复提现。
10. 业务绕过
例:
- 购买会员需要支付,抓包修改订单状态
status=paid直接开通; - 视频付费观看,前端校验 is_vip=0,抓包改为 1 解锁全部视频。
(二)学习路线
阶段 1:基础逻辑思维
- 熟记上面 12 种基础逻辑谬误;
- 练习:刷辩论、短视频评论,找出对方逻辑漏洞;
- 读物:《简单的逻辑学》入门。
阶段 2:Web 业务逻辑漏洞
- 前置基础:HTTP 抓包(Burp Suite)、前后端交互流程;
- 逐个吃透每类漏洞原理 + 复现场景;
- 本地靶场练习:
- WebGoat(内置逻辑漏洞关卡)
- DVWA、Pic 靶场、自建简易商城测试支付逻辑
- 实战思路:抓包后修改所有前端可控参数:id、price、count、status、code、is_vip,观察后端是否拦截。
阶段 3:漏洞挖掘实战技巧
通用测试流程:
- 注册、登录 → 测试越权(修改 ID 类参数)
- 短信 / 验证码页面 → 测试复用、爆破、明文泄露
- 支付、订单、优惠券 → 修改金额、叠加规则、重复提交
- 活动、抽奖、新人福利 → 次数限制绕过
- 找回密码、实名 → 遍历用户、绕过校验
- 所有接口重复发包测试重放漏洞
阶段 4:漏洞修复方案
通用修复原则:
- 所有核心数据后端校验,不信任前端任何输入
- 关键操作增加签名、时间戳、随机防重放参数
- 统一权限中间件,每个接口强制鉴权用户身份 + 角色
- 验证码设置 5 分钟有效期、单账号每日上限、单次失效
- 业务状态流转加锁(订单:未支付→已支付→已发货单向流转,不可逆向篡改)
- 敏感操作(退款、改密)二次验证短信 / 人脸