momomuchu/burpctl

GitHub: momomuchu/burpctl

burpctl 通过 Python CLI 与 Kotlin REST 扩展将 Burp Suite 的完整功能面暴露为命令行接口,使安全测试和 fuzzing 可以脚本化、自动化地运行在 Burp 内部上下文中。

Stars: 0 | Forks: 1

# burpctl [![Release](https://img.shields.io/github/v/release/momomuchu/burpctl?sort=semver&color=blue)](https://github.com/momomuchu/burpctl/releases) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/39faa54be350a1dab8afd3b2fb8c1c83e4d9cff84abfef2374d19a18053687c4.svg)](https://github.com/momomuchu/burpctl/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](#license) [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](bp/) [![Burp Suite](https://img.shields.io/badge/Burp%20Suite-Pro%20%2F%20Community-orange.svg)](https://portswigger.net/burp) 相比于 `ffuf` 或 Turbo Intruder,选择 `burpctl` 的理由在于:它们虽然速度很快,但它们运行在 Burp *外部* —— 你会丢失 session、cookies、上游配置以及 scope。`burpctl` 在客户端构建攻击,并通过 Burp 的 **Repeater** (`/repeater/send`) 发送每一次请求,*而不是* 使用 Burp 的 Intruder 引擎 —— 因此,你可以在一个可脚本化的命令中继承所有这些上下文,而无需在 UI 中进行大量点击。并且,由于它依赖于 Repeater,它绕过了 **Burp Community** 对 Intruder 应用的刻意速率限制:在保持处于你正在使用的 proxy 内部的同时,以全速进行多位置、矩阵式的 fuzzing。 它包含两个部分: - **`burpctl`** —— 一个快速、完全类型化的 **Python CLI**(你将使用的交互界面;`bp` 是它的 2 字符别名)。 - **burp-rest-extension** —— 一个 **Kotlin** Burp 扩展,它将 Burp 的 [Montoya API](https://portswigger.net/burp/documentation/desktop/extensions/creating) 暴露为本地 REST API 供 `burpctl` 驱动。 ``` you ──► burpctl (CLI) ──REST :8089──► burp-rest-extension ──Montoya──► Burp Suite (Pro / Community) ``` ## 功能 - 💥 **灵活的客户端 fuzzing** —— 标记 *任意* 字节范围(`header:`、`cookie:`、`body:`、`query:`、`path:`、原始 `offset:`),同时支持多个位置,以及全部四种攻击类型(sniper、battering-ram、pitchfork、cluster-bomb),并内置异常检测。在 Community 版本上不受速率限制。 - 🎯 **通过单一 CLI 操控完整的 Burp 功能面** —— proxy history、repeater、intruder、scanner、target/scope、decoder、collaborator、sitemap、sessions。 - 🔎 **安全检查** —— 内置针对 auth-bypass、IDOR、CORS 和安全 headers 的探测;发现问题时使用退出码 `5`,以便你可以对 CI/脚本进行拦截控制。 - 📒 **Run Ledger** —— 每次操作都会在本地记录,且 **仅包含 sha256 指纹**(绝不记录原始 body),并且 **默认开启 secret 脱敏**。 - 🧰 **同样适用于 Community 版** —— 只有启动 `collaborator` 和 `scan` 需要 Pro 版(它们会以退出码 `4` 退出并给出清晰提示);其他所有功能均可在 Community 上运行。 - 🔩 **可脚本化且对自动化友好** —— `--format json` 输出 NDJSON(每行一条记录);稳定的退出码;无交互式提示。这也使得它很容易由脚本或 AI agents 驱动。 - ✅ **规范驱动且经过测试** —— 433 个 Python 测试 + 一套 Kotlin 测试套件,`mypy --strict` + `ruff` 无任何报错,每次 push 均触发 CI。 ## 快速开始 **前置要求:** Burp Suite (Pro 或 Community) · JDK 17+ (用于构建扩展) · Python 3.11+ (用于 `burpctl`)。 **1. 构建并加载扩展** ``` ./gradlew shadowJar # → build/libs/burp-rest-extension.jar ``` 在 Burp 中:**Extensions → Add → Extension type: Java → 选择该 JAR 文件。** REST 服务器会自动启动 —— 在扩展的 Output 标签页中寻找 `Server started on http://127.0.0.1:8089`。 **2. 安装并使用 `burpctl`** ``` cd bp && uv tool install . # or: pipx install . (installs `burpctl` + `bp` alias) burpctl health # is the extension up? burpctl proxy --host target.example --limit 20 # captured history → request IDs # 同时 fuzz 两个位置,cluster-bomb,仅显示异常: burpctl fuzz 42 --pos 'header:X-Forwarded-For' --payloads X-Forwarded-For=ssrf.txt \ --pos 'cookie:role' --payloads role=privesc.txt \ --type cluster-bomb --anomalous-only burpctl check idor 'https://target/api/user?id=1' --param id --own 1 --target 2 # exits 5 if vulnerable ``` 👉 **完整的命令参考:[`bp/README.md`](bp/README.md)。** ## 仓库结构 | 路径 | 说明 | |---|---| | [`bp/`](bp/) | `burpctl` CLI (Python) — [README](bp/README.md) · [CHANGELOG](bp/CHANGELOG.md) | | `src/main/kotlin/com/burprest/` | Burp REST 扩展 (Kotlin / Ktor / Montoya) | | [`docs/`](docs/) | 基于源码的契约:[SPEC](docs/SPEC.md) · [CLI 语法](docs/CLI.md) · [OUTPUT](docs/OUTPUT.md) · [ALGORITHMS](docs/ALGORITHMS.md) · [ADRs](docs/adr/) | REST 接口面包含 **13 个路由组 / 69 个 endpoints**,全部在 `docs/SPEC.md` 中经过源码验证;每个 响应均为 `{success, data, error}`。 ## 构建与测试 ``` ./gradlew test # Kotlin extension cd bp && uv run pytest -q && uv run mypy --strict src && uv run ruff check src tests # burpctl: 433 tests, typed, linted ``` ## 贡献 欢迎提交 Issues 和 PRs —— `burpctl` 是规范驱动和测试优先的。请从 **[CONTRIBUTING.md](CONTRIBUTING.md)** 开始阅读(规范、开发环境设置、完成定义/Definition of Done),查看 **[ROADMAP](ROADMAP.md)** 了解规划内容,并按照 **[SECURITY.md](SECURITY.md)** 的指引私下报告漏洞。 ## 许可证 [MIT](LICENSE)
标签:CISA项目, Kotlin, Python, Web安全, 后台面板检测, 无后门, 蓝队分析, 逆向工具