业务逻辑漏洞全套测试用例(支付逻辑、越权、验证码、密码重置)
前言
在 Web 安全、SRC 漏洞挖掘、渗透测试工作中,业务逻辑漏洞永远是含金量最高、扫描器最难扫、厂商最认可、赏金最高的一类漏洞。
SQL 注入、XSS、上传漏洞这类属于 “通用型漏洞”,自动化工具可以轻松扫出大部分问题。
但业务逻辑漏洞完全依赖人工思维、业务理解、流程拆解,90% 的逻辑漏洞扫描器全部漏报。
业务逻辑漏洞覆盖范围极广:越权访问、支付篡改、验证码绕过、密码重置漏洞、接口逻辑混乱、重复提交、条件竞争、参数篡改、权限绕过等。
很多新手挖洞一直低产,原因很简单:
只会打通用漏洞,不会拆解业务流程、不会测逻辑漏洞。
本文系统化整理四大核心业务逻辑模块:
越权漏洞全套用例、支付逻辑漏洞、验证码漏洞、密码重置漏洞
每一项包含:测试场景、详细测试步骤、绕过技巧、漏洞判定、风险等级、修复方案。
全文可直接作为企业安全测试 Checklist、SRC 挖洞手册、面试复习资料。
免责声明:本文内容仅用于授权安全测试、网络安全学习、靶场练习。严禁用于未授权测试、非法渗透,违规造成的一切后果由操作者自行承担。
一、越权漏洞全套测试用例(水平越权 + 垂直越权 + 隐藏越权)
越权漏洞属于 OWASP Top 10 访问控制失效,是所有业务漏洞中出现频率最高、最稳定、最容易出分的漏洞类型。
核心原理
后端只判断用户是否登录,未校验当前资源是否属于当前用户。
- 水平越权:同级别用户查看 / 修改其他用户数据
- 垂直越权:普通用户执行管理员操作
完整测试用例表
| 用例编号 | 测试项 | 测试步骤 | 预期安全结果 | 风险等级 |
|---|---|---|---|---|
| AUTH_001 | 基础水平越权查询 | 1、登录用户 A,获取 A 的订单 ID / 用户 ID / 消息 ID2、保持 A 的 Token/Cookie 不变3、替换参数为用户 B 的 ID 并请求 | 禁止查询他人数据,返回无权限 | 高 |
| AUTH_002 | POST/JSON 请求体越权 | 修改 JSON 体内的user_id / order_id / target_id为他人 ID,使用自己的 Token 请求 | 后端校验资源归属,拦截非法访问 | 高 |
| AUTH_003 | 批量 ID 数组越权 | 接口传入ids:[1001,1002,1003],插入其他用户 ID | 只能查询自己的资源 ID | 高 |
| AUTH_004 | 加密参数越权测试 | 接口 ID 为加密串、UUID、MD5 值替换为其他用户加密 ID 重放 | 加密不代表安全,必须后端归属校验 | 高 |
| AUTH_005 | 垂直越权 - 后台接口遍历 | 普通用户 Token 直接访问/admin /system /user/list等后台接口 | 普通用户禁止访问管理员接口 | 高危 |
| AUTH_006 | 前端隐藏功能越权 | 前端隐藏按钮、禁用按钮,直接抓包调用对应接口 | 后端不能依赖前端隐藏,必须接口鉴权 | 高 |
| AUTH_007 | 越权修改他人资料 | 修改他人手机号、昵称、头像、收货地址 | 禁止修改他人数据 | 高危 |
| AUTH_008 | 越权删除资源 | 越权删除他人订单、文件、留言、记录 | 禁止删除他人资源 | 高危 |
| AUTH_009 | 越权重置他人密码 | 通过用户 ID 重置任意用户密码 | 严格校验用户归属,禁止批量重置 | 超高危 |
| AUTH_010 | 未登录越权访问 | 无需登录可直接访问用户数据、订单、文件 | 所有隐私接口必须登录鉴权 | 高 |
| AUTH_011 | 会话固定越权 | 更换用户身份后 Session 未刷新,可复用旧权限 | 登录必须刷新会话 | 中 |
| AUTH_012 | 子账户越权主账户 | 子账号越权查看主账户账单、资产 | 严格区分上下级权限隔离 | 高 |
越权漏洞高阶绕过技巧
- 参数为空绕过:不传 user_id,部分接口默认查询全部用户数据
- 参数为 0/-1 绕过:部分代码对负数、0 未做处理
- 参数覆盖漏洞:Body 和 URL 同时传不同 ID,看后端是否解析错乱
- 接口拼接漏洞:接口后缀参数篡改导致权限失效
- 多租户系统横向漫游:租户 ID 可控导致跨租户数据泄露
越权修复标准(万能修复公式)
所有查询、修改、删除接口,SQL 必须强制携带归属条件
WHERE id = #{id} AND user_id = #{current_login_user_id}禁止只判断是否登录,必须判断资源归属人。
二、支付逻辑漏洞全套测试用例(SRC 高分重点)
支付逻辑漏洞属于高危 / 严重漏洞,一旦测出直接高额赏金,属于业务逻辑天花板漏洞。
常见场景
订单生成、价格计算、支付回调、订单状态篡改、积分抵扣、优惠券、退款、重复支付、0 元购、负数金额。
| 用例编号 | 测试项目 | 测试步骤 | 安全预期 | 风险等级 |
|---|---|---|---|---|
| PAY_001 | 价格篡改漏洞 | 下单抓包,修改价格字段:price=0.01、price=0、price=-99 | 后端价格以服务器为准,禁止前端可控 | 严重 |
| PAY_002 | 数量溢出篡改 | 修改购买数量为超大数、负数、极值 | 后端限制合法数量区间 | 严重 |
| PAY_003 | 0 元购漏洞 | 修改商品价格为 0,成功下单无支付 | 禁止 0 元、负数订单 | 严重 |
| PAY_004 | 负数金额套现 | 金额改为负数,余额增加、金额返还 | 后端严格校验金额大于 0 | 严重 |
| PAY_005 | 重复支付 / 重复下单 | 支付成功后重复提交订单、重放支付包 | 订单状态幂等,已支付不可重复支付 | 高危 |
| PAY_006 | 优惠券无限叠加 | 重复使用优惠券、多份优惠券叠加 | 限制单订单优惠券次数 | 高 |
| PAY_007 | 积分无限抵扣 | 修改积分抵扣数值为超大值 | 后端校验用户真实积分余额 | 高 |
| PAY_008 | 支付回调伪造 | 伪造 pay_success=1、status=success 回调参数 | 回调必须验签、校验密钥、校验订单状态 | 严重 |
| PAY_009 | 订单状态篡改 | 抓包修改订单状态:未付款改已付款 | 订单状态服务端管控,前端不可控 | 严重 |
| PAY_010 | 退款逻辑漏洞 | 重复退款、超额退款、退款负数 | 校验原订单金额、退款次数 | 高危 |
| PAY_011 | 过期订单可支付 | 超时订单仍然可以支付成功 | 后端时间校验订单有效期 | 高 |
| PAY_012 | 未支付订单可发货 / 可查看权益 | 未付款订单直接获得会员 / 商品权益 | 必须支付成功再发放权益 | 严重 |
支付漏洞核心原理
所有金额、价格、状态、权益判断,必须后端计算,绝不信任前端传入参数。
顶级挖洞思路(SRC 大神常用)
- 寻找未验签的订单接口
- 寻找状态可篡改的订单字段
- 寻找回调参数可控的接口
- 寻找幂等性失效(重复提交)
- 寻找数值边界漏洞(负数、0、极大值)
三、验证码逻辑漏洞全套测试用例(高频、高通过率)
验证码漏洞是新手最容易出成果的逻辑漏洞,几乎每个网站都或多或少存在问题。
核心漏洞点
验证码可复用、验证码爆破、验证码为空绕过、验证码万能码、验证码不校验、前端校验失效、验证码超长有效。
| 用例编号 | 测试项 | 测试步骤 | 安全预期 | 风险等级 |
|---|---|---|---|---|
| CODE_001 | 验证码为空绕过 | 清空验证码参数,不传验证码直接提交 | 必须强制校验验证码 | 高 |
| CODE_002 | 验证码复用漏洞 | 同一个验证码多次提交、多次登录 / 重置 | 验证码使用一次立即失效 | 高 |
| CODE_003 | 验证码爆破漏洞 | 无次数限制,可无限暴力枚举验证码 | 限制错误次数、增加锁定机制 | 高危 |
| CODE_004 | 验证码超长有效期 | 几分钟、几小时后验证码仍然可用 | 有效期控制在 60-120 秒 | 中 |
| CODE_005 | 前端校验绕过 | 前端 JS 判断验证码,后端无校验,抓包直接提交 | 所有校验必须放在后端 | 高 |
| CODE_006 | 验证码返回明文 | 接口直接返回正确验证码数字 | 禁止返回验证码明文 | 高危 |
| CODE_007 | 任意手机号发送验证码 | 可给任意陌生手机号发送验证码(短信轰炸) | 限制本机、限制频率、黑名单拦截 | 中 |
| CODE_008 | 验证码跳过漏洞 | 删除验证码参数、赋值 null、000000 可绕过 | 参数缺失直接拦截 | 高 |
| CODE_009 | 错误验证码不刷新 | 输错验证码不刷新,可继续爆破 | 错误立即刷新验证码 | 中 |
| CODE_010 | 图形验证码万能码 | 000000、888888、123456 可通用 | 禁止万能验证码 | 高 |
验证码漏洞总结
只要验证码不刷新、可复用、可空、可爆破,全部属于标准高危逻辑漏洞。
四、密码重置逻辑漏洞(超级高频 SRC 漏洞)
密码重置漏洞一旦挖掘成功,可接管任意账号,属于严重级漏洞。
测试用例大全
| 用例编号 | 测试项 | 测试步骤 | 安全预期 | 风险等级 |
|---|---|---|---|---|
| RESET_001 | 任意用户密码重置 | 修改手机号 / 用户 ID,重置他人账号密码 | 只能重置自己账号 | 严重 |
| RESET_002 | Token 未绑定用户 | 重置 Token 全局通用,可重置任意账号 | Token 必须一对一绑定用户 | 严重 |
| RESET_003 | 重置链接长期有效 | 链接几天、永久有效 | 重置链接短时效、一次性 | 高 |
| RESET_004 | 重置链接可复用 | 改完密码后链接仍可继续重置 | 使用一次立即失效 | 高 |
| RESET_005 | 手机号验证码重置绕过 | 无需验证码直接重置密码 | 必须校验验证码 | 严重 |
| RESET_006 | 用户枚举漏洞 | 通过重置接口判断账号是否存在 | 统一返回模糊提示 | 中 |
| RESET_007 | 重置参数篡改 | 更改 userid、username 越权重置他人密码 | 后端校验归属 | 严重 |
| RESET_008 | 重置无频率限制 | 无限发送重置请求,造成骚扰 / 爆破 | 限制频率、IP 封禁 | 中 |
| RESET_009 | 未登录重置任意账号 | 无需登录即可重置全站用户密码 | 严格鉴权 + 二次校验 | 严重 |
| RESET_010 | 密码重置弱策略 | 可设置弱口令、与原密码一致 | 强制强密码策略 | 低 |
密码重置漏洞核心成因
- 未绑定用户唯一标识
- Token 全局通用
- 验证码未校验
- 未做归属判断
- 链接可复用、不过期
五、业务逻辑通用高阶测试思路(挖洞核心思维)
1. 所有前端参数全部不可信
价格、数量、ID、状态、积分、优惠券、权限,全部不能前端控制。
2. 所有接口必须做:鉴权 + 归属校验 + 参数校验
三层校验缺一不可。
3. 所有状态变更接口必须幂等
防止重复下单、重复支付、重复退款、重复提交。
4. 所有验证码、Token 必须一次性、短时有效
5. 所有金额类数据必须后端计算、验签、防篡改
六、最终修复方案总结(可直接写进报告)
越权修复
- 所有接口增加登录鉴权
- 所有资源操作增加用户归属校验
- 管理员接口增加角色权限校验
- 禁止前端控制权限逻辑
支付逻辑修复
- 价格、数量、金额全部后端计算
- 订单状态后端管控,前端不可篡改
- 支付回调强制验签
- 订单幂等处理,防止重复支付
- 严格校验金额正负、区间
验证码修复
- 验证码一次有效、超时失效
- 后端强制校验,不依赖前端
- 限制错误次数、防爆破
- 禁止空验证码、万能验证码
密码重置修复
- 重置 Token 绑定唯一用户
- 链接一次性、短时效
- 严格校验手机号验证码
- 禁止越权重置他人账号
结尾
业务逻辑漏洞是SRC 挖洞最高分、渗透测试最核心、面试最高频的漏洞体系。
通用漏洞可以靠工具,逻辑漏洞只能靠思维。
掌握本文全套测试用例,你可以覆盖市面上95% 以上的业务逻辑漏洞场景,无论是工作测试、SRC 挖洞、面试刷题都完全够用。
后续将更新:业务逻辑漏洞高阶绕过、条件竞争漏洞、接口幂等漏洞、短信轰炸、接口未授权访问全套用例。
欢迎点赞、收藏、关注,持续更新网安干货!
很多新手刚接触业务逻辑测试时,容易陷入一个误区:拿着 Payload 逐个硬测接口,盲目寻找漏洞。但业务逻辑测试的核心,应该是先跑通完整业务流程,站在产品设计者的角度寻找逻辑断点。
举个简单例子,测试支付功能不能只盯着下单接口,要从头到尾梳理:商品选择→确认订单→提交订单→唤起支付→支付回调→订单状态变更→发放权益→退款。整条链路里任何一环校验缺失,都可能产生严重漏洞。越权、密码重置也是同理,不要孤立测试单个接口,把整条业务链路串起来,更容易发现隐藏的逻辑缺陷。
同时,在 SRC 提交漏洞的时候,逻辑漏洞的报告撰写也尤为关键。通用漏洞放请求包 + 回显截图基本就能证明危害;而业务逻辑漏洞,必须清晰描述业务场景、复现步骤、漏洞影响范围,最好附带完整的 PoC 请求包。很多同学挖到漏洞但是描述不清,厂商直接判定无效或者降低评级,白白错失拿高分的机会。
另外在企业安全测试场景中,业务逻辑漏洞往往比注入、XSS 带来的业务损失更大。注入漏洞一般是数据泄露,而支付逻辑漏洞可以直接造成资金损失;越权漏洞可能批量泄露大量用户隐私数据。很多开发同学对这类漏洞认知不足,觉得 “页面上做了限制就安全了”,忽略后端校验,这也是逻辑漏洞长期大量存在的根本原因。
学习业务逻辑漏洞,最重要的是养成质疑习惯:所有前端展示的数据,我能不能篡改?这个操作是否校验操作者身份?这个凭证是否一次性生效?这个业务流程有没有异常分支?多问这几个问题,你的挖洞思路会开阔很多。
这套测试用例可以直接保存作为你的个人 Checklist,每次做安全测试或者挖洞前拿出来对照逐项排查。当然这份清单不是终点,业务场景千变万化,电商、OA、金融、会员系统、后台管理系统各自都有独特的业务逻辑,需要结合业务场景灵活调整测试思路。
了解网络安全,首先要搞清楚下面这些前提
- 网络安全到底包含哪些技术?是否需要会编程?
- 网络安全行业有哪些职业方向?“我”该如何选择?
- 网络安全的职业发展和成长路线是什么?
如果你是准备学习网络安全(黑客)或者正在学习,下面这些你应该能用得上:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】