intrudir/BypassFuzzer-Burp

GitHub: intrudir/BypassFuzzer-Burp

一款用于测试401/403授权绕过漏洞的Burp Suite扩展,整合多种绕过技术帮助安全测试人员快速评估访问控制有效性。

Stars: 10 | Forks: 1

# BypassFuzzer - Burp Suite 扩展 一款用于测试授权绕过漏洞(401/403 绕过)的 Burp Suite 扩展。这是 Python 版 [BypassFuzzer](https://github.com/intrudir/BypassFuzzer) 工具的 Java 移植版,与 Burp Suite 完全集成。 ## 功能特性 - **12 种攻击类型:** - 基于Header的攻击(283+ 绕过Header) - 路径操作(367+ 种URL编码) - HTTP动词/方法攻击(11 种方法 + 覆盖 + 大小写变体 + X-前缀/后缀) - Debug参数注入(31 个常见Debug参数及其大小写变体) - Cookie Debug参数注入(与Debug参数相同 + 对现有Cookie值进行模糊测试) - 尾部点攻击(绝对域名表示法) - 尾部斜杠攻击(测试有无尾部斜杠及 /. 模式) - 扩展名攻击(75+ 种文件扩展名,如 .json, .html, .php) - Content-Type攻击(在 URL-encoded、JSON、XML、multipart/form-data 之间转换) - 编码攻击(对路径、参数名以及查询字符串和所有正文内容类型中的参数值进行 URL、双重URL、三重URL、unicode、unicode-overflow 编码) - HTTP协议攻击(例如 HTTP/1.0, HTTP/0.9) - 大小写变体攻击(具有智能限制的随机大写) - **智能过滤:** 通过模式跟踪隐藏重复响应,自动降低噪音 - **速率限制与自动节流:** - 可配置的每秒请求数(默认:无限制) - 检测到速率限制错误(429, 503)时自动节流 - 节流时自动将速度降低 50% - **Collaborator集成:** 用于Header攻击的动态 Burp Collaborator payload 生成(仅限 Burp Professional) - **Burp集成:** - 右键菜单:“Send to BypassFuzzer” - 将结果发送到 Repeater/Intruder - 优雅关闭和资源清理 - 为有趣的请求着色以便后续过滤 - **冒烟测试:** - 位于 `src/test/smoke_lab` 的本地易受攻击冒烟实验室 - 攻击驱动的冒烟套件,无需 Burp 即可复用真实的攻击类和 payload 逻辑 ## 系统要求 - Java 17 或更高版本 - Burp Suite Professional 或 Community Edition (2023.10+) - Gradle 7.0+(用于构建) ## 构建 ``` # 构建 extension JAR ./gradlew clean shadowJar # 编译后的 JAR 将位于: # build/libs/bypassfuzzer-burp-1.0.5.jar ``` ## 测试 ``` # Unit 和回归测试 ./gradlew test # Attack-driven smoke suite ./gradlew smokeTestPlaybooks ``` 冒烟套件会自动启动一个本地易受攻击的应用程序,并在无需 Burp 的情况下演练真实的攻击策略、payload 扩展、注册表连接和共享执行器流程。 ## 安装 1. 打开 Burp Suite 2. 转到 **Extensions** → **Installed** 3. 点击 **Add** 4. 选择 **Extension file**:`bypassfuzzer-burp-1.0.5.jar` 5. 点击 **Next** 6. 扩展将加载,并出现一个 “BypassFuzzer” 选项卡 ## 使用方法 ### 基本工作流程 1. **发送请求到 BypassFuzzer:** - 右键点击 Proxy、Target 或 Repeater 中的任何请求 - 选择 “Send to BypassFuzzer” 2. **配置攻击:** - 选择要启用的攻击类型(或使用 Check All/Uncheck All) - 可选启用 Collaborator payload(仅限 Burp Professional) - 配置速率限制: - 设置 requests/second(0 = 无限制,默认) - 配置自动节流状态码(默认:429, 503) 3. **开始模糊测试:** - 点击 “Start Fuzzing” - 结果实时显示,并根据您的标准实时过滤 - 可随时通过 “Stop Fuzzing” 按钮停止模糊测试 - 如果检测到速率限制错误,自动节流将激活 - 可以右键点击请求为其着色,以便后续识别/过滤 4. **查看结果:** - 基于状态码、长度、content-type 等的动态过滤 - 使用智能过滤器自动仅查看有趣的结果 - 点击任何结果查看完整的请求/响应 - 将有趣的发现发送到 Repeater 或 Intruder 5. **扫描历史:** - 将结果导出为 CSV/JSON(TODO) ## 冒烟实验室 对于手动的 Burp 验证和本地攻击冒烟测试,请使用 [`src/test/smoke_lab`](src/test/smoke_lab) 中的易受攻击应用程序。 手动运行: ``` python3 src/test/smoke_lab/app.py ``` 然后: 1. 请求 `GET /login` 以接收 `session=lab-user` 2. 使用 `/admin`、`/api/admin/settings` 和 `/protocol/admin` 作为基础目标 3. 针对这些请求运行扩展或执行 `./gradlew smokeTestPlaybooks` 详细的路由矩阵和黑盒实验室检查记录在 [`src/test/smoke_lab/README.md`](src/test/smoke_lab/README.md) 中。 ## 自定义 Payload 您可以在构建前编辑 payload 文件。此功能的 UI 配置将在未来版本中添加。 1. **Header模板:** 每行一个模板,使用占位符: - `{IP PAYLOAD}` - 替换为来自 ip_payloads.txt 的IP地址 - `{URL PAYLOAD}` - 替换为完整的目标URL - `{PATH PAYLOAD}` - 仅替换为URL路径 - `{PATH SWAP}` - 用于基于URL的访问控制绕过;将原始路径放入Header中,并将请求路径交换为 `/` - `{OOB PAYLOAD}` - 动态生成 Burp Collaborator payload(http:// 和 https:// URL) - `{OOB DOMAIN PAYLOAD}` - 仅动态生成 Burp Collaborator 域名 - `{WHITESPACE PAYLOAD}` - 替换为空白字符 示例:`X-Forwarded-For: {IP PAYLOAD}` 使用 Collaborator 的示例:`X-Forwarded-For: {OOB DOMAIN PAYLOAD}` 用于 URL 绕过的示例:`X-Original-URL: {PATH SWAP}`(发送 `GET /`,Header 为 `X-Original-URL: /admin`) 2. **IP Payloads:** 每行一个IP地址 示例:`127.0.0.1` 3. **URL Payloads:** 每行一个URL编码/模式 示例:`/../` 4. **参数 Payloads:** 每行一个 parameter=value 示例:`debug=true` ## 许可证 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - 原始 Python 工具:[@intrudir](https://twitter.com/intrudir) - 智能过滤器算法:[@defparam](https://twitter.com/defparam) - Unicode 溢出技术:[PortSwigger Research](https://portswigger.net/research/bypassing-character-blocklists-with-unicode-overflows)
标签:403 Bypass, API 安全测试, Burp Suite 插件, BypassFuzzer, CISA项目, HTTP 方法篡改, Java 安全工具, JS文件枚举, MacOS取证, Web 安全扫描, 加密, 后台面板检测, 域名枚举, 授权绕过测试, 权限提升检测, 模糊测试 (Fuzzing), 流量控制, 漏洞扫描器, 网络安全, 路径遍历, 隐私保护