arkanzasfeziii/IDOR-Vulnerability-Scanner

GitHub: arkanzasfeziii/IDOR-Vulnerability-Scanner

自动化扫描 Web 应用中不安全的直接对象引用(IDOR)漏洞的工具,通过爬取和变异对象标识符检测水平与垂直越权问题。

Stars: 0 | Forks: 0

# IDOR 漏洞扫描器 ![Python](https://img.shields.io/badge/python-3.7%2B-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b466d76d29151506.svg) ![Version](https://img.shields.io/badge/version-1.0.2-orange) 用于检测**不安全的直接对象引用 (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安全, 加密, 数据泄露, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具