关于 pentest-business-logic
用于授权渗透测试的业务逻辑审查技能,针对工作流、业务规则和状态完整性中的缺陷。它覆盖步骤绕过、数据篡改、功能限制及支付流程测试,并映射 WSTG 业务逻辑测试项。
主要功能
- 01梳理工作流与业务约束
- 02测试步骤跳过、重放及重排
- 03检查数据完整性与边界值
- 04测试功能使用限制绕过
- 05检查文件上传及支付逻辑
适用场景
- 01尝试绕过结账或审批流程中的前置步骤
- 02测试优惠券重复使用与推荐循环
- 03检查价格、数量和请求参数篡改
- 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
- 配置代理以捕获所有应用流量
- 为工作流测试准备好种子测试数据(产品、优惠券、用户账户)
核心工作流
- 工作流映射:从侦察交付物和源代码中提取多步骤流程(结账、注册、审批链、引导流程)。记录预期的状态转换和业务约束。
- 规则提取:识别服务器端业务约束——价格验证、数量限制、基于角色的操作限制、时间限制、优惠券规则、推荐限制。
- 绕过步骤:跳过、重放或重新排列多步骤工作流中的步骤。无需完成前置步骤即可直接访问最后一步的端点(WSTG-BUSL-06)。
- 滥用数据完整性:提交负数数量、零价商品、边界值,以及业务字段中的类型混淆数据。测试伪造的请求参数(WSTG-BUSL-02/03)。
- 绕过功能限制:测试优惠券重复使用、推荐循环、刷票,以及通过合法端点耗尽资源(WSTG-BUSL-05)。
- 文件上传逻辑:上传意外文件类型、超大文件、多格式文件、内容类型不匹配的文件,以及文件名中的路径遍历内容(WSTG-BUSL-08/09)。
- 支付测试:测试结账各阶段的价格操纵、货币混淆、折扣叠加和部分支付滥用(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