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文件枚举, 域名枚举, 网络管理