业务逻辑漏洞的“另类运用”通常需要攻击者深入理解目标业务流程,通过逆向思维和非预期操作触发异常逻辑。其操作流程可划分为以下关键阶段,结合具体案例说明攻击路径和实现方式:
阶段一:业务逻辑逆向分析
1. 信息收集与业务建模
- 目标:
梳理目标系统的核心业务流程(如注册、支付、提现、兑换奖励等),明确各环节的输入、输出和状态转移规则。
- 操作步骤:
-
使用浏览器开发者工具抓取API请求,分析参数传递逻辑; -
通过爬虫或人工操作生成业务流程时序图(如订单生命周期:创建→支付→发货→退款); -
识别关键依赖(如订单状态是否依赖支付回调、优惠计算是否信任前端参数)。
2. 规则边界探测
- 目标:
寻找业务规则中的“假设漏洞”(如“用户不会在1秒内多次提交订单”)。
- 测试方法:
- 参数篡改
修改金额、数量、状态码等参数(如 price=-100
、step=5
); - 时序干扰
在支付完成前并发发起退款请求; - 逆向操作
阶段二:漏洞发现与验证
1. 单点漏洞验证
- 案例:支付回调绕过
- 攻击流程
-
创建订单后,拦截支付接口返回的“未支付成功”响应; 篡改响应码为“支付成功”(如 status=200
);观察系统是否直接发货,而未向支付网关二次确认。 - 验证结果
若发货成功,则存在“客户端状态信任”漏洞。
2. 逻辑矛盾挖掘
- 案例:优惠券叠加漏洞
- 攻击流程
-
同时使用“满100减50”优惠券和“8折折扣券”; -
观察系统是否先满减后打折(计算逻辑为 (100-50)*0.8=40
),而非预期逻辑100*0.8-50=30
; -
进一步测试是否允许订单金额为负值(如 总价=40
时叠加“满30减50”优惠券)。
阶段三:攻击链构造
1. 漏洞串联(以“零元购”为例)
- 步骤分解
- 绕过身份验证
:利用注册接口未校验手机号唯一性,批量注册账号; - 领取新人奖励
:通过自动化脚本高频调用“每日签到”接口,积累优惠券; - 参数篡改
:修改购物车接口的 total_price
参数为0,利用后端未重新计算价格的漏洞提交订单; - 绕过支付
:直接调用发货接口(如 /api/ship?order_id=123
),利用系统未校验支付状态的缺陷; - 资源转移
:将商品通过二手交易功能转卖给真实用户,完成套现。
2. 时间窗口攻击(双花攻击)
- 攻击流程
: -
用户A向用户B发起一笔转账; -
在转账请求到达服务端前,用户A立即发起账户冻结操作; -
利用系统处理“转账”和“冻结”的并发竞争: -
若冻结先执行,转账应失败,但攻击者可能通过重放请求绕过; -
若转账先执行,攻击者通过撤销操作(如利用未扣减余额的BUG)实现“余额双花”。
阶段四:自动化利用
1. 工具化攻击(以刷取积分为例)
- 实现方式
-
使用Python + Selenium自动化执行以下流程: -
注册新账号(绕过IP限制使用代理池); -
调用API领取新手奖励( POST /api/get_reward
); -
通过修改HTTP请求头(如 X-User-Id
)伪装成其他用户转移积分; -
删除账号逃避风控检测。 - 关键代码片段
# 伪代码:篡改用户ID领取他人奖励
headers = {"X-User-Id": "victim_user_id", "Cookie": "session=attacker_session"}
requests.post("/api/get_reward", headers=headers)
2. 隐蔽性增强
- 对抗风控策略
-
随机化操作间隔(如3秒~10秒延迟); -
使用Headless浏览器模拟真人操作轨迹; -
通过中间账号“洗白”资源(如A→B→C→主账号)。
阶段五:结果确认与持久化
1. 漏洞验证
- 数据比对
-
对比攻击前后的账户余额、库存数量等核心数据; -
检查日志是否记录异常操作(如未记录则可持续利用)。
2. 持久化后门
- 案例:会员权限残留
- 攻击方法
-
开通会员后发起退款,但系统未回收会员权限; -
利用会员特权(如免费下载)持续获利。 - 防御绕过
定期触发“心跳检测”(如访问会员专属页面)维持权限状态。
防御视角的操作流程逆向推演
从防御者角度,可通过以下步骤模拟攻击路径:
- 绘制攻击树(Attack Tree)
:以核心业务(如支付)为根节点,列出所有可能的异常操作分支; - 混沌工程测试
:主动注入故障(如延迟回调、强制状态跳转),观察系统是否出现逻辑矛盾; - 动态污点追踪
:标记用户输入参数,跟踪其在业务逻辑中的传播路径,发现未经验证的敏感操作。
总结:攻击者的核心方法论
- 假设颠覆
:寻找业务设计中的“理想化前提”,通过非常规操作打破假设; - 状态污染
:利用系统状态同步的延迟或漏洞,构造非法状态迁移; - 逻辑寄生
:将攻击行为伪装成合法业务操作,绕过风控规则检测。
防御方需通过业务逻辑沙盘推演和攻击者画像建模,提前发现此类“规则漏洞”。
(注:本文所述技术仅用于安全研究,禁止用于非法用途。)
原文始发于微信公众号(SQ安全渗透):业务逻辑漏洞挖掘与分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论