arkanzasfeziii/Blind-Injection-Scanner

GitHub: arkanzasfeziii/Blind-Injection-Scanner

一款支持时间型和布尔型检测的 Web 应用盲注漏洞扫描器,覆盖 SQL、命令、NoSQL 和 LDAP 注入向量。

Stars: 0 | Forks: 0

# Blind Injection 扫描器 [![Python](https://img.shields.io/badge/python-3.9%2B-blue?logo=python)](https://python.org) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Lint](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fbd3ff3e62151511.svg)](https://github.com/arkanzasfeziii/Blind-Injection-Scanner/actions/workflows/lint.yml) [![Authorized Use Only](https://img.shields.io/badge/use-authorized%20targets%20only-red)](#disclaimer) 一个全面的 CLI 工具,用于检测 Web 应用中的 **blind injection 漏洞**。支持跨 SQL、command、NoSQL 和 LDAP injection 向量的基于时间和基于布尔的检测技术。 ## 什么是 Blind Injection? 当 Web 应用容易受到 injection 攻击,但不会在 HTTP 响应中直接返回注入查询的结果时,就会发生 blind injection。相反,攻击者会通过以下方式推断信息: - **基于时间** — 观察服务器是否将响应延迟了受控的秒数(例如 `SLEEP(5)`、`WAITFOR DELAY`、`ping -n 5`) - **基于布尔** — 观察注入求值为 true 的条件与求值为 false 的条件时响应的差异(内容长度、状态码) 由于 blind injection 不会产生可见的错误输出,因此通常会被那些寻找反射错误消息的基础扫描器所忽略。 ## 检测技术 ### 基于时间 Payload 会导致数据库或操作系统暂停执行固定的时长。如果 HTTP 响应的延迟时间大致超过基线该时长,则确认存在 injection。 支持的数据库 / 运行时: - **MySQL** — `SLEEP(N)`, `BENCHMARK(...)` - **PostgreSQL** — `pg_sleep(N)` - **MSSQL** — `WAITFOR DELAY '00:00:N'` - **Oracle** — `DBMS_LOCK.SLEEP(N)` - **SQLite** — `randomblob(...)` - **OS 命令** — `sleep N` (Unix), `timeout N` / `ping -n N` (Windows) - **MongoDB** — `$where: "sleep(N)"` ### 基于布尔 发送成对的 true/false 条件 payload,并比较标准化后的响应大小。具有统计显著性的差异(>5%)会标记潜在的 injection。针对基线响应长度的标准化,可以过滤掉由时间戳和会话 token 等动态页面内容引起的误报。 ## 功能 - 检测 **SQL**、**command**、**NoSQL (MongoDB)** 和 **LDAP** injection - 支持基于时间和基于布尔的 blind 检测 - 注入的 sleep 持续时间上限为 **10 秒**,以防止请求失控 - 可配置的每请求 **timeout**(默认 30 秒)和 **delay** 阈值 - 多个基线样本(中值计时)以实现可靠的检测 - 会话级别的 **redirect** 限制(最多 5 次),以防止 redirect 循环 - 带有颜色编码严重性级别的 Rich 终端输出 - 导出 JSON 以集成到报告 pipeline 中 - 在任何扫描开始前进行法律确认拦截 ## 安装说明 ``` git clone https://github.com/arkanzasfeziii/Blind-Injection-Scanner.git cd Blind-Injection-Scanner pip install -r requirements.txt ``` **环境要求:** Python 3.9+ ## 使用说明 ``` python Blindinjscan.py [OPTIONS] ``` ### 选项 | 标志 | 描述 | |------|-------------| | `--method` | HTTP 方法:GET、POST、PUT、DELETE、PATCH(默认:GET) | | `--data` | POST/PUT 正文 — URL 编码或 JSON | | `--headers` | 作为 JSON 字符串的自定义 headers | | `--cookies` | 作为 JSON 字符串的 Cookies | | `--parameter` | 仅测试此参数(默认:检测到的所有参数) | | `--type` | Injection 类型:`sql`、`command`、`nosql`、`ldap`、`all`(默认:all) | | `--delay` | 标记为发现的最小计时差值(默认:5.0 秒) | | `--timeout` | 每请求的超时时间(秒)(默认:30) | | `--aggressive` | 通过减少请求间延迟来加快扫描速度 | | `--verbose` | 启用 debug 级别日志记录 | | `--output FILE` | 将发现结果导出为 JSON 文件 | | `--examples` | 显示 CLI 示例并退出 | | `--i-understand-legal-responsibilities` | 跳过交互式授权提示 | ### CLI 示例 ``` # 扫描 GET 参数以检测所有 injection 类型 python Blindinjscan.py "http://testapp.local/page?id=1" # POST 表单登录字段,仅针对 SQL injection python Blindinjscan.py http://testapp.local/login \ --method POST \ --data "username=admin&password=test" \ --parameter username \ --type sql # JSON API 端点附带 bearer token python Blindinjscan.py http://api.testapp.local/user \ --method POST \ --data '{"id": "123"}' \ --headers '{"Authorization": "Bearer eyJ..."}' \ --type sql # NoSQL (MongoDB) 扫描并输出详细日志 python Blindinjscan.py "http://testapp.local/api/users?filter=all" \ --type nosql --verbose # Command injection 扫描,将结果导出至 JSON python Blindinjscan.py "http://testapp.local/ping?host=localhost" \ --type command \ --output scan_results.json ``` ## 示例输出 ``` ════════════════════════════════════════════════════════════════ Blind Injection Scanner v1.0.0 ════════════════════════════════════════════════════════════════ Parameters to test: id Establishing baseline... ⠸ Testing parameter: id ════════════════════════════════════════════════════════════════ Scan Summary ════════════════════════════════════════════════════════════════ Target URL http://testapp.local/page?id=1 Scan Duration 42.17s Parameters 1 Total Requests 24 Vulnerabilities 2 ⚠️ Vulnerabilities Detected Type Parameter Severity Confidence Evidence SQL Injection (Time-based) id HIGH 90% Response delayed by 5.14s (expected ~5s) SQL Injection (Boolean-based) id HIGH 72% True: 4821 bytes, False: 312 bytes (norm diff: 14.4%) ``` ## 免责声明 此工具仅供**授权的安全测试和教学目的**使用。 - 在扫描任何系统之前,您必须拥有明确的书面许可 - 作者不对滥用或未经授权的使用承担任何责任 - 没有维护窗口和回滚计划,绝不要对生产系统运行此工具 - 请在安全的环境中进行测试,例如 [DVWA](https://github.com/digininja/DVWA) 或 [WebGoat](https://github.com/WebGoat/WebGoat)
标签:CISA项目, Python, Web安全, 加密, 文档结构分析, 无后门, 注入检测, 漏洞扫描器, 蓝队分析, 逆向工具