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安全, 上游代理, 令牌交换, 体篡改, 协议分析, 参数篡改, 响应分析, 多语言支持, 头部绕过, 安全报告, 安全检测, 安全测试框架, 开发安全, 授权测试, 文件解析, 无后门, 权限提升, 网络安全审计, 网络请求, 蓝队分析, 认证绕过, 访问控制, 逆向工具, 防御绕过