arkanzasfeziii/Broken-Access-Control-Scanner

GitHub: arkanzasfeziii/Broken-Access-Control-Scanner

一款自动化 Web 安全扫描器,用于检测水平/垂直越权、IDOR、JWT 篡改等失效访问控制漏洞。

Stars: 0 | Forks: 0

# Broken-Access-Control-Scanner [![Python](https://img.shields.io/badge/python-3.7%2B-blue.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3abc7dab60232435.svg)](https://github.com/arkanzasfeziii/Broken-Access-Control-Scanner/actions/workflows/lint.yml) [![OWASP A01](https://img.shields.io/badge/OWASP-A01%3A2021-red.svg)](https://owasp.org/Top10/A01_2021-Broken_Access_Control/) 用于检测 **Broken Access Control** 漏洞的高级自动化扫描器 —— 自 2021 年起位居 OWASP Top 10 第一名。 ## 什么是 Broken Access Control? Broken Access Control (BAC) 是指应用程序未能正确限制已认证用户能执行的操作。攻击者利用这些缺陷访问其他用户的账户、查看敏感数据、修改无权更改的记录,或执行特权操作。 OWASP 2021 报告将 BAC 移至**首位**,在 94% 的受测应用程序中均有出现。其在现实世界中的影响包括大规模数据泄露、账户接管以及完整的管理权限沦陷。 ## 检测技术 | 技术 | 描述 | |-----------|-------------| | IDOR 枚举 | 递增或变异对象 ID 以访问其他用户的资源 | | 垂直越权 | 测试普通用户是否可以访问仅限管理员使用的 endpoint | | 水平越权 | 测试用户 A 是否可以读写用户 B 的数据 | | JWT 篡改 | 修改 token 声明(alg=none, role=admin)以绕过身份验证 | | 路径穿越 | 注入 `../` 序列以脱离预期的目录范围 | | 强制浏览 | 在不遵循应用链接的情况下探测未发现的 endpoint | | HTTP 方法覆盖 | 使用 `X-HTTP-Method-Override` header 绕过方法级别的 ACL | | CORS 配置错误 | 发送恶意的 `Origin` header 以检测反射 | | 参数污染 | 复制或变异查询参数以混淆服务端逻辑 | ## 功能 - 多用户角色测试(普通用户 vs 管理员,用户 A vs 用户 B) - 具有可配置并发能力的异步引擎(最多支持 100 个并行请求) - 导入 OpenAPI / Swagger 规范以自动发现 endpoint - 具有可配置深度的 Web 爬虫 - 为每个发现提供 CVSS 评分和置信度评分 - 输出 JSON 和 HTML 报告(可用时提供 Jinja2 模板) - 用于自定义 BAC 测试的插件系统(包含 GraphQL 示例) - 支持代理(Burp Suite, OWASP ZAP) ## 配置 (`config_sample.json`) | 键 | 描述 | |-----|-------------| | `targets` | 要扫描的 base URL 列表 | | `users` | 格式为 `"username:password:role"` 的凭证字符串 | | `login_url` | 扫描器用于对每个用户进行身份验证的 endpoint | | `mode` | `quick`(仅限手动 endpoint)或 `full`(爬取 + 测试) | | `concurrency` | 并行请求限制(默认 20,最大 100) | | `openapi` | 用于自动导入 endpoint 的 OpenAPI/Swagger JSON 路径 | | `output` | 报告路径 —— `.json` 或 `.html` | | `proxy` | 可选的 HTTP 代理(例如 Burp, ZAP) | | `endpoints` | 包含路径、方法、参数和请求体的 endpoint 手动列表 | | `custom_rules` | IDOR 参数名称模式和敏感数据关键字 | ## 安装 ``` git clone https://github.com/arkanzasfeziii/Broken-Access-Control-Scanner.git cd Broken-Access-Control-Scanner pip install -r requirements.txt ``` ## 使用说明 ``` # 使用两个账户进行 Basic scan python advancedbacscanner.py \ --targets https://app.example.com \ --users user1:pass1:user,admin:adminpass:admin \ --login-url https://app.example.com/api/login \ --output report.html # 使用 config file 进行 Full crawl + scan python advancedbacscanner.py --config config_sample.json --mode full # 使用 Burp proxy 进行 OpenAPI-driven scan python advancedbacscanner.py \ --targets https://api.example.com \ --openapi swagger.json \ --proxy http://127.0.0.1:8080 \ --output report.json ``` ## 示例输出 ``` [Phase 1/4] Authentication Authenticated 2/2 users [Phase 2/4] Endpoint Discovery Discovered 47 unique endpoints [Phase 3/4] Vulnerability Testing Progress: 47/47 endpoints tested Found 3 unique vulnerabilities SCAN SUMMARY ================================================================================ Total Vulnerabilities Found: 3 [CRITICAL] Critical: 1 [HIGH] High: 2 [MEDIUM] Medium: 0 [LOW] Low: 0 Top Vulnerability Types: * Vertical Privilege Escalation: 1 * Insecure Direct Object Reference: 1 * HTTP Method Override: 1 ```
标签:CISA项目, Modbus, OWASP Top 10, Python, Web安全, 加密, 无后门, 漏洞扫描器, 蓝队分析, 越权检测, 逆向工具