文章总结: 本文解析了业务流程绕过漏洞的成因与利用方法。该漏洞源于服务端未严格校验业务状态,仅依赖客户端参数判断流程是否完成。测试时需抓包对比正常申请与审批数据包,提取状态变更参数并注入申请请求中实现绕过。此缺陷可导致未授权提权或绕过资金审核等严重危害。建议开发者必须在服务端实施严格的流程状态校验与权限复核,绝不信任客户端传入的状态标志。 综合评分: 78 文章分类: 渗透测试,漏洞分析,WEB安全
业务流程绕过漏洞
原创
游山玩水 游山玩水
山水SRC
2026年4月22日 08:52 河南
在小说阅读器读本章
去阅读
免责声明
本公众号分享的所有渗透测试技术文章仅面向合法授权的安全测试、学习交流与研究用途。读者必须确保自身行为符合《网络安全法》等相关法律法规,严禁将其用于任何未授权攻击等非法活动。因不当使用或传播相关内容所引发的任何法律责任与风险,由行为人自行承担,本公众号(或本人)概不负责
流程
出现前提
- 业务存在一个需要审批或确认的流程(例如:申请权限、提现、修改关键信息)。
- 服务端在处理“申请”请求时,未能严格校验该申请当前所处的业务状态。
- 服务端仅依赖客户端传来的参数(如状态标志)来判断流程是否完成,而未在服务端进行完整的流程状态验证和权限复核。
测试流程
- 正常流程抓包:完整走一遍正常的“申请-同意”流程,使用抓包工具(如Burp Suite)捕获“提交申请”和“管理员同意”两个关键数据包。
- 参数对比分析:对比两个数据包,找出“同意”数据包中特有的、能标识状态变更的参数(例如:
status=approved、action=confirm、auditUserId=xxx)。 - 构造绕过请求:直接重放“提交申请”的数据包,并在其中添加从“同意”数据包中提取的关键参数。
- 结果验证:观察是否成功绕过审批流程,直接完成了操作。
危害
攻击者可以在无授权的情况下,直接完成敏感业务操作,例如:
- 普通用户直接为自己授予管理员权限。
- 绕过提现审核,直接发起转账。
- 未经确认修改他人账户信息或敏感设置。
数据包分析与绕过演示
假设一个“用户申请成为VIP”的场景。
1. 正常申请数据包 (POST /api/applyVip)
```
POST /api/applyVip HTTP/1.1 … {“userId”: “1001”, “applyType”: “vip”}
```
- 分析:此包仅提交申请,服务端预期会创建一个状态为“待审核”的申请记录。
2. 管理员同意数据包 (POST /api/auditApply)
```
POST /api/auditApply HTTP/1.1 … {“applyId”: “20260001”, “auditResult”: “approved”, “auditorId”: “admin01”}
```
- 分析:此包包含审批动作的核心参数
auditResult,其值"approved"是触发状态变更的关键。
3. 绕过攻击:在申请包中植入审批参数
攻击者直接修改最初的申请包,植入审批关键参数:
```
POST /api/applyVip HTTP/1.1 … {“userId”: “1001”, “applyType”: “vip”, “auditResult”: “approved”}
```
- 原理:如果服务端
/api/applyVip接口错误地处理了auditResult参数,并仅凭此参数就将申请状态置为“已通过”,则完整流程被绕过。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:山水SRC 游山玩水 游山玩水《业务流程绕过漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论