liam-portswigger/burp-api-scanner

GitHub: liam-portswigger/burp-api-scanner

一款基于 Montoya API 构建的 Burp Suite 扩展,提供覆盖 OWASP API Security Top 10 (2023) 的主动与被动 API 安全扫描能力,并支持可选的 Burp AI 集成以减少误报。

Stars: 1 | Forks: 0

# 高级 API 安全扫描器 一款用于 OWASP API Security Top 10 (2023) 测试的 Burp Suite 扩展, 基于 [Montoya API](https://portswigger.net/burp/documentation/desktop/extend-burp/extensions) 构建。 **兼容版本:** - Burp Suite Professional(带 UI 标签页) - Burp Suite DAST(无头模式 / 自动化扫描) 该扩展在加载时会自动检测版本;UI 标签页 仅在 Professional 版本下注册。 ## 快速开始 ``` mvn clean package -DskipTests ``` 生成 `target/burp-api-scanner-2.1.0.jar`。通过 **Extensions → Installed → Add → Java** 加载。 需要 JDK 17+(Montoya API 要求)和 Maven 3.6+。 扩展输出标签页中的横幅将如下所示: ``` ==================================== Advanced API Security Scanner v2.1.0 OWASP API Security Top 10 (2023) coverage Edition: Burp Suite Professional AI features: enabled ==================================== ``` ## 覆盖范围 | OWASP 类别 | 检测方式 | |---|---| | API1:2023 — Broken Object Level Authorization | 主动 + 被动 | | API2:2023 — Broken Authentication | 主动 + 被动 | | API3:2023 — Broken Object Property Level Authorization | 主动 + 被动 | | API4:2023 — Unrestricted Resource Consumption | 被动 | | API5:2023 — Broken Function Level Authorization | 主动 | | API6:2023 — Unrestricted Access to Sensitive Business Flows | 被动 | | API7:2023 — Server-Side Request Forgery | 主动 | | API8:2023 — Security Misconfiguration | 主动 + 被动 | | API9:2023 — Improper Inventory Management | 主动 + 被动 | | API10:2023 — Unsafe Consumption of APIs | 主动 + 被动 | 有关各类别的详细信息及带说明的覆盖范围表,请参阅 [BURP_DAST_GUIDE.md](BURP_DAST_GUIDE.md)。 ## 核心特性 - **HTTP 方法 fuzzing 不再是核心** — 最初的 v1 实现会对每个响应意外动词的 endpoint 进行标记,这在实际目标测试中显得过于嘈杂。现在的检查仅专注于通过 TRACE 方法进行的 Cross-Site Tracing。 - **主动版本探测** — 当路径匹配 `/vN/` 时,扩展会主动探测同一 host 上的 `/v(N-1)/`、`/v(N-2)/`、…,并报告每个返回 2xx 状态码的版本。能够发现残留到生产环境中的已弃用 API 版本。 - **Burp AI 集成**(可选) — 当 `api.ai().isEnabled()` 为 true 时,将自动激活两项额外功能: - **被动分诊**:针对容易产生噪音的被动检查(如 missing-header 发现等)提供误报过滤。每一项发现都会在上下文中由模型进行审查;明确的误报将被剔除。 - **基于上下文的批量赋值字段发现**:除了硬编码的 `isAdmin`/`role`/等 payload 之外,模型还会根据观察到的 JSON body 提出特定领域的特权字段(如 `priceOverride`、`organizationRole` 等)。 这两项功能都提供了 JVM 属性 kill switch,并且每个 prompt 的超时时间限制在 2 秒。 ## 文档 - [CLAUDE.md](CLAUDE.md) — 架构、约定和注意事项。在贡献代码前请先阅读此文档。 - [BURP_DAST_GUIDE.md](BURP_DAST_GUIDE.md) — DAST 专属的加载方式、横幅说明、覆盖范围和故障排除。 - [VALIDATION_GUIDE.md](VALIDATION_GUIDE.md) — 如何根据置信度级别验证发现。 ## 架构(概览) ``` com.security.burp/ ├── BurpExtender.java # entry; declares AI capability, registers everything ├── ai/ # AI client + triage + field discovery ├── checks/ │ ├── AbstractPassiveCheck # base classes — exception handling, triage │ ├── AbstractActiveCheck │ ├── passive/ # 6 passive checks │ └── active/ # 9 active checks ├── scanner/EndpointRegistry # shared state for the UI tab ├── ui/ScannerTab # Swing tab listing discovered endpoints └── util/IssueBuilder # fluent AuditIssue construction ``` 共有 15 项扫描检查,分别使用适当的 `ScanCheckType`(`PER_INSERTION_POINT`、`PER_HOST` 或 `PER_REQUEST`)进行注册。 有关详细分类,请参阅 [CLAUDE.md](CLAUDE.md)。 ## 免责声明 仅供授权的安全测试使用。在测试任何非您拥有的 API 或应用程序之前,请获取适当的授权。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:API安全, Burp Suite插件, CISA项目, JSON输出, JS文件枚举, 域名枚举, 网络管理