SuperAPI AI 工具集

testing-for-business-logic-vulnerabilities

安全与审计

查看项目

更新于 10-15 13:55

技能介绍

用途

本技能用于在获得授权的渗透测试中,手动识别应用程序业务逻辑层面的缺陷。当自动化扫描器发现的技术漏洞较少时,业务逻辑测试尤为重要。它主要针对价格篡改、多步骤工作流绕过和权限提升等问题,通过拦截并修改请求来验证业务规则是否可被违反。

主要能力

  • 价格与数量篡改测试:拦截并修改请求中的价格、数量和总价,测试负数、零值、超大数量、小数/浮点操纵、整数溢出,以及直接修改结账请求中的总金额。
  • 工作流步骤绕过测试:尝试跳过多步骤流程中的必需步骤,如跳过邮箱验证、跳过支付、跳过 MFA、跳过审批流程,以及重复执行本应一次性的步骤(如多次应用同一优惠券)。
  • 竞态条件测试:利用并发请求处理中的时间窗口,测试优惠券应用、余额转账、奖励领取等场景下的竞态条件。
  • 推荐与奖励系统滥用测试:测试自我推荐、推荐码跨账户复用、优惠券叠加、免费试用滥用、礼品卡/信用操纵、奖励积分操纵等。
  • 角色与权限逻辑测试:评估通过业务流程进行权限提升的可能性,包括注册参数提权、组织租户边界测试、角色降级后的权限保留、邀请/委托滥用等。

使用方式

该技能以工作流形式组织,包含以下步骤:

  1. 映射业务流程与规则:记录所有关键业务流程及其预期约束,如注册/入职流程、电商/购买流程、认证/授权流程、金融交易等,并记录预期约束(最低订单金额、每件商品最大数量、优惠券使用限制、推荐奖励上限、提现每日限额、特定操作前的账户验证要求等)。
  2. 测试价格与数量操纵:使用 curl 等工具拦截并修改请求中的价格、数量和总价值。
  3. 测试工作流步骤绕过:尝试跳过多步骤流程中的必需步骤。
  4. 测试业务逻辑中的竞态条件:利用并发请求处理中的时间窗口。
  5. 测试推荐与奖励系统滥用:寻找利用促销功能和奖励机制的方式。
  6. 测试角色与权限逻辑:评估通过业务流程进行权限提升的可能性。

适用场景

  • 授权渗透测试中,自动化扫描器发现的技术漏洞较少时。
  • 评估电商平台的定价、购物车和支付流程操纵。
  • 测试多步骤工作流(注册、结账、审批流程)的绕过机会。
  • 评估限流功能,如优惠券、推荐、奖励系统。
  • 金融应用、投票系统或任何具有关键业务规则的应用的安全评估。

前置条件

  • 授权:涵盖业务逻辑测试的书面渗透测试协议。
  • Burp Suite Professional:用于拦截和修改多步骤请求流。
  • 应用理解:深入了解应用的预期业务流程。
  • 多个测试账户:不同权限级别和状态的账户。
  • 浏览器 DevTools:用于检查客户端验证逻辑。
  • 文档:描述预期行为的业务需求或用户故事。

工具与系统

  • Burp Suite Professional:请求拦截、修改和序列测试。
  • Burp Turbo Intruder:用于竞态条件测试的高速请求发送。
  • Burp Sequencer:用于可预测引用测试的令牌随机性分析。
  • OWASP ZAP:基于代理测试的开源替代方案。
  • Postman:使用集合运行器和环境变量进行工作流测试。
  • 自定义脚本:用于自动化业务逻辑测试的 Python/bash 脚本。

关键概念

  • 业务逻辑缺陷:应用程序工作流或规则中的漏洞,允许非预期操作。
  • 价格操纵:修改客户端请求中的价格、数量或总价值。
  • 工作流绕过:跳过多步骤业务流程中的必需步骤。
  • 竞态条件:利用并发请求处理违反业务约束。
  • 权限提升:通过业务流程操纵获得更高权限。
  • 负向测试:使用非预期值(负数、零、空、极端值)进行测试。
  • 状态操纵:以业务逻辑非预期顺序更改应用状态。

常见场景

  • 优惠券代码叠加:电商网站允许应用多个优惠券代码,叠加后折扣超过商品价格,导致负余额或免费订单。
  • 资金转账竞态条件:银行应用在转账前检查余额但未锁定账户,从 1000 余额同时发送两笔 1000 转账,两笔均成功。
  • 结账价格覆盖:结账流程在 POST 正文中发送总金额,拦截并将总价从 499.99 改为 0.01,以操纵后的价格成功下单。
  • 密码重置令牌重用:密码重置流程生成一次性令牌但使用后未失效,同一令牌可重复用于重置密码。

输出格式

该技能定义了业务逻辑漏洞发现的输出格式,包含漏洞名称、严重性(CVSS)、位置、OWASP 分类、复现步骤、违反的业务规则表格、影响和建议。

限制

该技能要求书面授权、Burp Suite Professional 等工具、对应用业务流程的深入了解、多个测试账户、浏览器 DevTools 和业务文档。缺少这些前置条件时,测试可能无法有效进行。具体收费、价格、平台支持情况暂未提供。