arkanzasfeziii/Blind-Injection-Scanner
GitHub: arkanzasfeziii/Blind-Injection-Scanner
一款支持时间型和布尔型检测的 Web 应用盲注漏洞扫描器,覆盖 SQL、命令、NoSQL 和 LDAP 注入向量。
Stars: 0 | Forks: 0
# Blind Injection 扫描器
[](https://python.org)
[](LICENSE)
[](https://github.com/arkanzasfeziii/Blind-Injection-Scanner/actions/workflows/lint.yml)
[](#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安全, 加密, 文档结构分析, 无后门, 注入检测, 漏洞扫描器, 蓝队分析, 逆向工具