mcpField
P
pentest-business-logic

pentest-business-logic

github.com/jd-opensource安全31558 次安装28 周前更新
代码仓库

关于 pentest-business-logic

用于授权渗透测试的业务逻辑审查技能,针对工作流、业务规则和状态完整性中的缺陷。它覆盖步骤绕过、数据篡改、功能限制及支付流程测试,并映射 WSTG 业务逻辑测试项。

主要功能

  1. 01梳理工作流与业务约束
  2. 02测试步骤跳过、重放及重排
  3. 03检查数据完整性与边界值
  4. 04测试功能使用限制绕过
  5. 05检查文件上传及支付逻辑

适用场景

  1. 01尝试绕过结账或审批流程中的前置步骤
  2. 02测试优惠券重复使用与推荐循环
  3. 03检查价格、数量和请求参数篡改
  4. 04在沙盒支付环境验证折扣与部分付款

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-business-logic

安装后在 Claude Code 中输入/pentest-business-logic确认已加载。

附带文件references/tools.mdreferences/workflows.md

详细介绍

渗透测试业务逻辑

目的

识别应用工作流执行、业务规则验证和状态机完整性方面的缺陷。污点分析或模式匹配无法发现这些缺陷。此类漏洞需要理解预期行为,并找出偏差。

前提条件

授权要求
  • 书面授权,明确规定业务逻辑测试的范围
  • 测试账户,涵盖多个权限级别(用户、管理员、付费用户等)
  • 测试支付方式或用于财务测试的沙盒支付环境
  • 回滚计划,用于处理任何会修改数据的测试(创建订单、更改账户)
环境设置
  • 配置好 Repeater/Intruder 的 Burp Suite Professional
  • 用于多步骤浏览器自动化的 Playwright 或 Selenium
  • 配置代理以捕获所有应用流量
  • 为工作流测试准备好种子测试数据(产品、优惠券、用户账户)

核心工作流

  1. 工作流映射:从侦察交付物和源代码中提取多步骤流程(结账、注册、审批链、引导流程)。记录预期的状态转换和业务约束。
  2. 规则提取:识别服务器端业务约束——价格验证、数量限制、基于角色的操作限制、时间限制、优惠券规则、推荐限制。
  3. 绕过步骤:跳过、重放或重新排列多步骤工作流中的步骤。无需完成前置步骤即可直接访问最后一步的端点(WSTG-BUSL-06)。
  4. 滥用数据完整性:提交负数数量、零价商品、边界值,以及业务字段中的类型混淆数据。测试伪造的请求参数(WSTG-BUSL-02/03)。
  5. 绕过功能限制:测试优惠券重复使用、推荐循环、刷票,以及通过合法端点耗尽资源(WSTG-BUSL-05)。
  6. 文件上传逻辑:上传意外文件类型、超大文件、多格式文件、内容类型不匹配的文件,以及文件名中的路径遍历内容(WSTG-BUSL-08/09)。
  7. 支付测试:测试结账各阶段的价格操纵、货币混淆、折扣叠加和部分支付滥用(WSTG-BUSL-10)。

WSTG 覆盖范围

WSTG ID测试名称状态
WSTG-BUSL-01测试业务逻辑数据验证✅
WSTG-BUSL-02测试伪造请求的能力✅
WSTG-BUSL-03测试完整性检查✅
WSTG-BUSL-04测试流程计时✅
WSTG-BUSL-05测试功能可使用次数限制✅
WSTG-BUSL-06测试工作流绕过✅
WSTG-BUSL-07测试应用滥用防护✅
WSTG-BUSL-08测试上传意外文件类型✅
WSTG-BUSL-09测试上传恶意文件✅
WSTG-BUSL-10测试支付功能✅

工具类别

类别工具用途
请求操纵Burp Repeater、Burp Intruder、mitmproxy修改请求参数、重放或重新排列步骤
浏览器自动化Playwright、Selenium多步骤工作流测试、UI 交互
脚本编写Python requests、aiohttp自定义工作流滥用脚本、并行请求
文件上传自定义多格式文件生成器、ExifTool文件类型混淆、元数据注入
支付测试Stripe 测试模式、PayPal 沙盒安全地测试支付操纵

参考资料

  • references/tools.md - 工具函数签名和参数
  • references/workflows.md - 攻击模式定义和测试用例

评论

支持 Markdown