Murad-Aghazada/Auth-Breaker
GitHub: Murad-Aghazada/Auth-Breaker
一款轻量级 CLI 工具,用于自动化检测破损的访问控制与授权绕过漏洞。
Stars: 0 | Forks: 0
# AuthBreaker
用于授权安全测试 Web 应用程序和 API 的实用 Python CLI 工具。
它解析原始 HTTP 请求,发送基线请求,执行以授权为重点的变异测试,比较响应并报告可疑发现。
## 测试内容
- 破损的访问控制模式
- 授权绕过行为
- IDOR 风格的数字标识符篡改
- 特权提升风格的参数/正文变异
- 基于头的绕过尝试
- 可选的令牌交换(使用提供的令牌样本)
## 项目文件
- `tool.py`:主 CLI 工具
- `requirements.txt`:Python 依赖项
- `LICENSE.txt`:项目使用和分发许可证
- `examples/request.txt`:示例原始 HTTP 请求
- `examples/tokens.txt`:令牌交换测试的示例令牌列表
## 要求
- Python 3.9+
- 访问目标系统的互联网/网络权限
- 明确授权测试目标
安装依赖:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
## 用法
```
python tool.py
python tool.py
python tool.py
```
示例:
```
python tool.py examples/request.txt
python tool.py examples/request.txt examples/tokens.txt
python tool.py examples/request.txt examples/tokens.txt report.json
```
## 请求文件格式
请求文件必须是原始 HTTP 请求(Burp 风格):
```
GET /api/user/123/profile HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOi...
Cookie: session=abc123; theme=dark
Content-Type: application/json
{"userId":123,"role":"user"}
```
规则:
- 首行必须为:`METHOD /path HTTP/1.1`
- 必须包含 `Host` 头
- 空行分隔头部与正文
- 仅当正文为有效 JSON 且内容类型包含 `application/json` 时,才执行 JSON 变异测试
## 令牌文件格式
每行一个令牌:
```
# 允许注释
eyJhbGciOi...tokenA
eyJhbGciOi...tokenB
```
行为:
- 空行和以 `#` 开头的行会被忽略
- 如果请求包含 `Authorization`,令牌交换会篡改该头部
- 如果请求包含类似认证的 Cookie(`session`、`auth`、`token`、`jwt`、`access_token`),令牌交换也会篡改该 Cookie
## 执行的测试
工具按顺序运行以下测试:
1. 无认证测试
2. IDOR 测试
3. 令牌交换测试(仅在提供有效令牌文件时执行)
4. 特权提升测试
5. 头部操作测试
## 查找逻辑(高层级)
每个变异请求与基线使用以下方式比较:
- HTTP 状态码变化
- 响应正文相似度得分
- 响应正文长度差异
- 重定向 `Location` 变化
- 敏感关键词的出现
根据响应差异将发现标记为风险等级(`High`、`Medium`、`Low`)。
## JSON 报告输出
提供输出路径时,工具会写入包含以下内容的 JSON 报告:
- `target`
- `baseline_status`
- `tests_run`
- `findings`
示例运行:
```
python tool.py examples/request.txt examples/tokens.txt report.json
```
## 示例控制台输出
```
========================================
AUTHBREAKER
========================================
[+] Loaded request successfully
[+] Target: https://example.com/api/user/123/profile
[+] Sending baseline request...
[+] Running authorization tests...
--------------------------------------------------
FINDINGS
--------------------------------------------------
[HIGH] No Auth Test
Reason: Baseline denied access, but modified request succeeded.
Mutation: Removed Authorization and Cookie headers
Baseline: 403
Modified: 200
Similarity: 0.4123
--------------------------------------------------
SUMMARY
--------------------------------------------------
Tests run: 5
Findings: 1
```
## 注意事项与限制
- 启发式检测可能产生误报或漏报
- 不能替代完整的手动渗透测试
- 有状态的多步骤业务逻辑缺陷不在范围内
- WAF/速率限制/反自动化控制可能影响结果
- 对非 JSON 正文的变异支持有限
## 故障排除
- `Missing Host header`:在请求文件中添加 `Host`
- `Malformed request line`:确保格式为 `METHOD /path HTTP/1.1`
- 基线请求失败:验证连接性、TLS/代理设置以及目标可用性
- 无令牌交换发现:确认请求包含 `Authorization` 或类似认证的 Cookie
## 合法与道德使用
仅对您明确被授权测试的系统使用此工具。
标签:API安全, API安全, CISA项目, DevSecOps, HTTP请求解析, IDOR, JSON输出, JSON输出, Python, Streamlit, URL发现, Web安全, 上游代理, 令牌交换, 体篡改, 协议分析, 参数篡改, 响应分析, 多语言支持, 头部绕过, 安全报告, 安全检测, 安全测试框架, 开发安全, 授权测试, 文件解析, 无后门, 权限提升, 网络安全审计, 网络请求, 蓝队分析, 认证绕过, 访问控制, 逆向工具, 防御绕过