arkanzasfeziii/IDOR-Vulnerability-Scanner
GitHub: arkanzasfeziii/IDOR-Vulnerability-Scanner
自动化扫描 Web 应用中不安全的直接对象引用(IDOR)漏洞的工具,通过爬取和变异对象标识符检测水平与垂直越权问题。
Stars: 0 | Forks: 0
# IDOR 漏洞扫描器




用于检测**不安全的直接对象引用 (IDOR)** 漏洞的自动化扫描器。它会爬取 Web 应用程序,识别 URL、查询字符串、请求体和 HTTP 头中的对象标识符,然后系统地变异这些标识符,以检测对属于其他用户或更高权限级别的资源的越权访问。
## 什么是 IDOR?
当应用程序暴露了对内部对象(例如数据库键、文件路径或记录 ID)的引用,且未对访问者执行适当的访问控制时,就会产生 IDOR 漏洞。攻击者通过将自己的标识符替换为其他用户的标识符来利用此漏洞,从而获取对数据的未授权访问。
此工具主要针对两种常见模式:
- **水平 IDOR** — 已登录用户访问处于同一权限级别的其他用户数据(例如,在您只拥有订单 `1002` 的情况下查看 `/api/orders/1001`)。
- **垂直 IDOR** — 未认证或低权限用户访问受保护的资源(例如,在没有凭据的情况下访问 admin endpoint)。
## 功能
- **多位置检测** — 扫描 URL 路径段、查询参数、POST body 和 HTTP 头部以寻找候选标识符。
- **水平与垂直测试** — 每个候选对象都会在提供会话凭据(水平)和不提供任何身份验证(垂直)的情况下进行测试。
- **智能变异引擎** — 为数字 ID(带有边界检查)、UUID、MD5/SHA1/SHA256 哈希以及通用的字母数字字符串生成上下文相关的变异。
- **可配置的爬虫** — 遵守 `robots.txt`,跟踪在 HTML 中发现的链接和表单,解析 JSON API 响应,并可选地使用 Selenium 进行单页应用 (SPA) 抓取。
- **详尽的报告** — 生成结构化的 JSON 报告和可选的独立 HTML 报告,两者均包含 CVSS 分数、响应差异和优先修复建议。
- **灵活的身份验证** — 支持 session cookies、API key、JWT bearer token 和 HTTP Basic Auth。
- **速率限制** — 可配置的请求间延迟,以避免压垮目标。
## 安装
**环境要求:** Python 3.7+
```
# 核心依赖(必需)
pip install requests beautifulsoup4 lxml
# 可选 — SPA 爬取
pip install selenium
# 可选 — ML 评分功能
pip install scikit-learn numpy
# 可选 — WebSocket 端点测试
pip install websocket-client
```
对于 SPA 爬取 (`--spa`),您还需要安装与您的 Chrome 版本匹配的 [ChromeDriver](https://chromedriver.chromium.org/),并确保其在您的 `PATH` 中可用。
## 用法
### 基础扫描(未认证)
```
python idor_scanner.py -u https://example.com
```
### 认证扫描
```
# Session cookies
python idor_scanner.py -u https://app.example.com \
--cookies "session=abc123; user_id=456"
# API key
python idor_scanner.py -u https://api.example.com \
--api-key "your-secret-key"
# JWT bearer token
python idor_scanner.py -u https://api.example.com \
--jwt "eyJhbGciOiJIUzI1NiIs..."
# HTTP Basic Auth
python idor_scanner.py -u https://example.com \
--auth "username:password"
```
### 高级选项
```
# 深度爬取至深度 5,请求间隔 0.5 秒,HTML 报告
python idor_scanner.py -u https://example.com \
-d 5 --rate-limit 0.5 --html -o results.json
# SPA 支持(需要 Selenium + ChromeDriver)
python idor_scanner.py -u https://spa.example.com --spa
# 详细输出
python idor_scanner.py -u https://example.com --verbose
```
### 完整选项参考
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `-u`, `--url` | *(必填)* | 目标基础 URL |
| `--cookies` | — | Session cookies (`"name=val; name2=val2"`) |
| `--headers` | — | 自定义 headers (`"X-Foo: bar, X-Baz: qux"`) |
| `--api-key` | — | API key (作为 `X-API-Key` 发送) |
| `--jwt` | — | JWT bearer token |
| `--auth` | — | Basic auth (`user:pass`) |
| `-d`, `--depth` | `3` | 最大爬取深度 |
| `--rate-limit` | `1.0` | 请求间隔秒数 |
| `--spa` | off | 基于 Selenium 的 SPA 爬取 |
| `--proxy` | — | 代理 URL (`http://host:port`) |
| `-o`, `--output` | `idor_report.json` | JSON 报告路径 |
| `--html` | off | 同时生成 HTML 报告 |
| `-v`, `--verbose` | off | 调试日志 |
## 扫描结果输出示例
```
================================================================================
IDOR VULNERABILITY SCAN COMPLETE
================================================================================
Target: https://app.example.com
Duration: 42.17 seconds
Endpoints Scanned: 38
Parameters Tested: 114
Vulnerabilities Found: 2
CRITICAL: 1
HIGH: 1
================================================================================
VULNERABILITIES DETECTED - Review the report for details
Critical and High severity issues require immediate attention!
================================================================================
```
JSON 报告摘录:
```
{
"endpoint": "https://app.example.com/api/users/1043",
"method": "GET",
"parameter": "path_segment_2 (url)",
"original_value": "1043",
"mutated_value": "1042",
"severity": "HIGH",
"attack_type": "horizontal",
"cvss_score": 8.0,
"base_response_code": 200,
"mutated_response_code": 200,
"evidence": "Baseline Status: 200\nMutated Status: 200\nSimilarity: 94.30%"
}
```
## 推荐的测试目标
在专门构建的包含漏洞的应用程序上进行安全练习:
- [DVWA](https://github.com/digininja/DVWA) — Damn Vulnerable Web Application
- [WebGoat](https://github.com/WebGoat/WebGoat) — OWASP WebGoat
- [Juice Shop](https://github.com/juice-shop/juice-shop) — OWASP Juice Shop
## 合法与合规使用
**在对您不拥有的任何系统进行扫描之前,您必须获得书面授权。**
此工具仅供授权的渗透测试、CTF 比赛和本地实验室环境使用。在大多数司法管辖区,未经明确书面同意而针对生产系统运行此工具属于违法行为。作者不对滥用行为承担任何责任。
有关负责任的漏洞披露政策,请参阅 [SECURITY.md](SECURITY.md)。
## 作者
- GitHub: [@arkanzasfeziii](https://github.com/arkanzasfeziii)
- Email: arkanzasfeziii@gmail.com
## 许可证
本项目基于 [MIT License](License) 授权。
标签:CISA项目, Python, Web安全, 加密, 数据泄露, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具