arkanzasfeziii/Business-Logic-Vulnerability-Scanner

GitHub: arkanzasfeziii/Business-Logic-Vulnerability-Scanner

一款 Web 应用业务逻辑漏洞扫描器,专门检测价格篡改、工作流跳步、竞态条件和权限提升等传统特征签名扫描器无法覆盖的业务规则缺陷。

Stars: 0 | Forks: 0

# 业务逻辑漏洞扫描器 ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green) ![CI](https://img.shields.io/github/actions/workflow/status/arkansasfeziii/Business-Logic-Vulnerability-Scanner/lint.yml?label=Lint) 一款用于识别 Web 应用程序中业务逻辑漏洞的高级扫描器。与关注注入类的工具(SQLi、XSS 扫描器)不同,该扫描器专门针对应用程序正常工作*规则*中的缺陷——这类漏洞会让攻击者只花 $0.01 就买到价值 $500 的商品、跳过身份验证,或者无限次兑换优惠券。 ## 什么是业务逻辑漏洞? 业务逻辑缺陷是应用程序在设计、实现工作流、定价和访问规则时存在的弱点。基于特征签名的扫描器无法检测到它们,因为这需要理解应用程序*应该*做什么,并测试它*实际*做了什么。 **为什么它们能逃避传统扫描器:** - 没有恶意 payload —— 攻击者以无效的方式使用有效的输入 - 依赖于上下文 —— 负数数量仅在购买流程中才算是漏洞 - 特定于应用程序 —— 没有可供匹配的通用特征签名 **现实世界中的影响:** - 金融欺诈:以操纵后的价格或叠加折扣购买商品 - 账户接管:绕过身份验证或 MFA 步骤 - 库存滥用:提交负数数量以增加账户余额 - 推荐欺诈:通过自我推荐和无限循环推荐获取无限奖励 ## 测试的漏洞类别 | 类别 | 描述 | |---|---| | 价格篡改 | 价格/金额字段中的负数、零、小数和溢出值 | | 负数利用 | 向购物车/转账 endpoint 发送负数数量 | | 工作流跳步 | 在未完成前置条件的情况下直接访问结账确认 | | 中间步骤绕过 | 在多步骤向导中从第 1 步直接跳转到第 5 步 | | 优惠券 / 滥用折扣 | 在单笔交易中叠加使用多个折扣码 | | 竞态条件利用 | 向兑换/转账/投票 endpoint 发送并发的重复请求 | | 会话固定 | 身份验证后未重新生成 session ID | | 状态参数篡改 | 伪造 state/status/phase 查询参数 | | IDOR | 通过更改数字 ID 访问其他用户的记录 | | 权限提升 | 水平和垂直权限边界违规 | | 必填字段绕过 | 在缺少必填字段的情况下仍接受表单提交 | | 自我推荐滥用 | 操纵推荐系统以使自身获益 | ## 功能 - 自动爬取并发现链接、表单和脚本 endpoint - 可选通过 Playwright 或 Selenium 对 SPA 应用程序进行 JavaScript 渲染 - 执行基线校准运行以减少误报 - 具备学习模式匹配的启发式响应评分 - 在表单绕过测试期间保留 CSRF token - 使用唯一的幂等键进行并发竞态条件测试 - 结构化的 JSON 报告,包含 CVSS 分数、置信度评级和手动验证步骤 - 在证据中使用显式的 `validation_concern` 字段标记负数/零值 ## 安装 ``` pip install -r requirements.txt # 可选:JavaScript 渲染 pip install playwright selenium playwright install ``` ## CLI 用法 ``` # 基础 unauthenticated 扫描 python logicflaw_finder.py -u https://target.example.com # Authenticated 扫描 python logicflaw_finder.py -u https://target.example.com -c creds.json # 使用 Playwright JS 渲染和 debug 输出的完整扫描 python logicflaw_finder.py -u https://target.example.com --js-render --renderer playwright --debug # 通过 Burp Suite proxy 路由 python logicflaw_finder.py -u https://target.example.com --proxy http://127.0.0.1:8080 # 调整 crawl 深度和 thread 数量 python logicflaw_finder.py -u https://target.example.com --max-depth 5 -t 20 ``` **凭证文件 (`creds.json`):** ``` { "username": "test@example.com", "password": "password123" } ``` ## 输出示例 ``` [*] LogicFlawFinder v3.0 - Starting scan on https://target.example.com [*] [Phase 1] Discovery [+] Crawl complete: 47 endpoints, 12 forms [*] [Phase 2] Baseline Calibration [+] Baseline calibration complete: 10 samples [*] [Phase 3] Vulnerability Testing [!!!] [CRITICAL] Price Manipulation via Negative (Confidence: 78%) [!!!] [CRITICAL] Race Condition Vulnerability (Confidence: 65%) [!] [HIGH] Workflow Step Bypass (Confidence: 55%) ====================================================================== SCAN SUMMARY ====================================================================== Target: https://target.example.com Duration: 42.17 seconds Requests Sent: 318 Endpoints Found: 47 Forms Found: 12 Vulnerabilities: 3 [CRITICAL] 2 finding(s) [HIGH] 1 finding(s) ``` ## 许可证 MIT。详情请参阅 [LICENSE](LICENSE)。
标签:Python, Web安全, 业务逻辑漏洞, 加密, 无后门, 漏洞扫描器, 特征检测, 蓝队分析, 逆向工具