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), 流量控制, 漏洞扫描器, 网络安全, 路径遍历, 隐私保护