SuperAPI AI 工具集

web-vuln-business-logic

安全与审计

查看项目

更新于 10-16 06:38

技能介绍

用途

该技能通过梳理应用工作流、识别状态转换,并逐一测试跳过、重放和篡改攻击来检测业务逻辑漏洞。

主要能力

覆盖六类业务逻辑问题:工作流步骤绕过、负数数量与价格篡改、优惠券与折扣滥用、通过竞态绕过限流、功能标志滥用、TOCTOU 竞态条件。使用 curl 与 Burp Suite 手动测试,因为此类漏洞无专门扫描器适用。

使用方式

通过环境变量配置目标:SECSKILL_TARGET(目标基础 URL,必填)、SECSKILL_TOKEN(测试账号的 Bearer 令牌或会话 Cookie,必填)、SECSKILL_WORKFLOW_START(工作流首个端点,必填)、SECSKILL_WORKFLOW_END(工作流最终端点,必填)、SECSKILL_COUPON_CODE(可选,用于测试重放/叠加的有效优惠券码)、SECSKILL_ITEM_ID(可选,购物车/价格篡改测试用的商品 ID)、SECSKILL_OUTPUT_DIR(可选,默认 ./output)。

先进行环境搭建与工作流梳理:在代理中正常走一遍完整流程,记录按顺序的每个端点、所有状态参数、POST 体中的隐藏字段(如 price、discount_rate、is_free、skip_payment)、完成端点以及回传服务端的客户端状态。随后探测业务关键端点(/checkout、/cart、/payment、/subscribe、/upgrade、/coupon、/promo、/refund、/transfer、/redeem、/gift、/credits、/billing、/plans)。

工作流步骤绕过:用新会话直接访问完成端点,尝试 POST 带有 skip_payment、status、confirmed 等参数的请求;测试 GET 方式跳过;在中间步骤注入隐藏参数。

负数数量与价格篡改:对购物车测试 quantity 为 -1、-100、0、0.001、999999、-999999;对结账测试 price 为 0、-1、0.01、1、0.001、"0.00"、"-100";测试退款金额篡改;测试货币字段(USD、EUR、JPY、BTC、FAKE、null)。

优惠券与折扣滥用:测试同一会话多次应用、优惠券叠加、10 个并发请求的优惠券兑换竞态、常见过期或管理类优惠券码(EXPIRED2023、ADMIN50、DEBUG100、TEST、FREE、INTERNAL、STAFF)。

限流绕过:测试并行请求绕过(20 个并发)、伪造 IP 头(X-Forwarded-For、X-Real-IP、X-Originating-IP、CF-Connecting-IP),以及 Burp Turbo Intruder 的末字节同步。

功能标志与套餐滥用:通过请求篡改升级套餐(enterprise、premium、admin、pro、unlimited、gold),篡改请求体中的功能标志,直接访问高级功能端点(/api/export、/api/bulk、/api/advanced、/api/admin、/api/premium、/api/reports/all、/api/analytics)。

TOCTOU 竞态条件:测试信用/余额消耗的双花与结账竞态(重复订单),参考资料提供 Python 线程脚本。

业务影响记录:量化具体金额或服务滥用场景,保留完整复现序列(curl 命令或 Burp 请求序列)。

完成标准

至少确认一个可复现请求序列的业务逻辑漏洞;完成漏洞类型分类;量化业务影响;最小化前置条件(最好为免费账号、无需用户交互);捕获完整复现序列。

适用场景

测试涉及金钱、信用、折扣或退款的功能;应用具有多步骤工作流;请求体包含价格、数量、金额或折扣字段;存在优惠券或促销码端点;功能受角色、套餐或订阅等级控制;测试先检查后操作的动作(余额检查、所有权检查、配额限制)。

限制与注意事项

业务逻辑漏洞无需特殊工具,代理与两个账号足以完成多数测试。最高价值的漏洞涉及财务影响。TOCTOU 漏洞最好用 Python 线程脚本在屏障处同时发起请求,bash 后台任务对低于 100ms 的竞态窗口精度不足。优惠券竞态窗口通常为 5–50ms,建议使用 Burp Turbo Intruder 的末字节同步。需在有效的漏洞赏金或渗透测试授权范围内进行,并使用合法获取的测试账号与优惠券码。测试失败模式包括:价格字段返回 400、优惠券重放返回已使用、工作流绕过返回 403、负数数量返回 400、竞态请求返回 200 但余额正确递减、功能标志端点返回 404、退款金额被拒等,资料中给出了对应的排查方向。