piyushchavan002-ctrl/Syntecxhub_SQL_Injection_Scanner
GitHub: piyushchavan002-ctrl/Syntecxhub_SQL_Injection_Scanner
一款异步并发的 Python SQL 注入漏洞扫描器,通过多维度 Payload 测试帮助安全人员在授权环境中检测 Web 应用的 SQL 注入风险。
Stars: 0 | Forks: 0
# 🛡️ SQL 注入扫描器
一款快速、异步的 Python 工具,用于检测 Web 应用程序中的 SQL 注入漏洞。
专为在 DVWA、本地应用和 CTF 环境等目标上进行**授权渗透测试**而构建。
## ✨ 功能
| 功能 | 详情 |
|---|---|
| 🔍 **4 种检测方法** | 基于报错、基于布尔、基于时间盲注、基于 Union |
| ⚡ **异步与并发** | `asyncio` + `aiohttp`,支持可配置的并发 |
| 🚦 **速率限制** | 请求间可配置的延迟,以避免被检测/造成过载 |
| 🧠 **自动参数发现** | 未指定参数时,自动爬取表单和查询字符串 |
| 📋 **JSON 报告** | 自动保存带时间戳的结构化报告 |
| 🍪 **Cookie / 认证支持** | 传入会话 cookie 以进行经过认证的扫描 |
| 📝 **双重日志记录** | 控制台输出 + 持久化的 `sqli_scan.log` |
| 🎯 **50+ Payload** | 精选适用于 MySQL、PostgreSQL、MSSQL、Oracle、SQLite |
## 🚀 快速开始
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/sql-injection-scanner.git
cd sql-injection-scanner
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 针对 DVWA 运行(推荐的测试目标)
```
# 本地运行的 DVWA (安全级别: low)
python sql_injection_scanner.py \
-u "http://localhost/dvwa/vulnerabilities/sqli/" \
-p id \
--cookie "PHPSESSID=your_session_id; security=low"
```
## 📖 用法
```
python sql_injection_scanner.py [OPTIONS]
Options:
-u, --url Target URL (required)
-p, --params Parameter name(s) to test (auto-discovered if omitted)
--types Payload types: error_based boolean_based time_based union_based stacked_queries
-c, --concurrency Max concurrent requests (default: 5)
-r, --rate Seconds between requests (default: 0.5)
-t, --timeout HTTP timeout in seconds (default: 10)
--cookie Cookie string e.g. "session=abc; security=low"
-o, --output Custom output JSON filename
-v, --verbose Enable debug logging
```
## 🧪 示例命令
```
# 使用所有 payload 类型测试单个参数
python sql_injection_scanner.py \
-u "http://localhost/app/user.php" \
-p id
# 仅使用 error-based 和 boolean-based payloads
python sql_injection_scanner.py \
-u "http://localhost/search" \
-p q \
--types error_based boolean_based
# Aggressive concurrency, 较慢的 rate limit
python sql_injection_scanner.py \
-u "http://testphp.vulnweb.com/listproducts.php" \
-p cat \
-c 10 -r 0.2
# 使用 verbose 输出将报告保存到自定义文件
python sql_injection_scanner.py \
-u "http://localhost/dvwa/vulnerabilities/sqli/" \
-p id \
--cookie "PHPSESSID=abc123; security=low" \
-o dvwa_results.json \
-v
```
## 📂 项目结构
```
sql-injection-scanner/
├── sql_injection_scanner.py # Main scanner
├── requirements.txt # Python dependencies
├── README.md # This file
├── sqli_scan.log # Auto-generated log (after first run)
└── sqli_report_*.json # Auto-generated reports (after each scan)
```
## 📊 示例报告输出
```
============================================================
SCAN REPORT
============================================================
Target : http://localhost/dvwa/vulnerabilities/sqli/
Started : 2024-11-15T10:23:01
Finished : 2024-11-15T10:23:44
Total Reqs : 198
Vulnerable : 3
============================================================
[1] Parameter : id
Type : error_based
Payload : '
Evidence : DB error signature: ...You have an error in your SQL syntax...
HTTP : 200 (0.312s)
[2] Parameter : id
Type : time_based
Payload : '; SELECT SLEEP(5)--
Evidence : Response delayed 5.21s (time-based blind SQLi)
HTTP : 200 (5.213s)
```
JSON 报告将保存为 `sqli_report_YYYYMMDD_HHMMSS.json`。
## 🔬 Payload 分类
| 分类 | 技术 | 检测内容 |
|---|---|---|
| `error_based` | 触发数据库报错信息 | SQL 错误的直接可见性 |
| `boolean_based` | 真/假条件 | 内容长度差异 |
| `time_based` | `SLEEP()` / `WAITFOR DELAY` | 通过响应延迟进行盲注 |
| `union_based` | `UNION SELECT` 语句 | 数据提取能力 |
| `stacked_queries` | 链式语句 | 多语句执行 |
## 🏗️ 合法测试环境
| 环境 | 设置 |
|---|---|
| **DVWA** | [github.com/digininja/DVWA](https://github.com/digininja/DVWA) — Docker 或 XAMPP |
| **OWASP WebGoat** | [github.com/WebGoat/WebGoat](https://github.com/WebGoat/WebGoat) |
| **bWAPP** | [itsecgames.com](http://www.itsecgames.com/) |
| **HackTheBox** | [hackthebox.com](https://www.hackthebox.com/) — 需有效订阅 |
| **TryHackMe** | [tryhackme.com](https://tryhackme.com/) — 特定房间目标 |
| **VulnHub** | [vulnhub.com](https://www.vulnhub.com/) |
## ⚙️ 工作原理
```
Target URL + Params
│
▼
Baseline Request ──── Records normal response length
│
▼
Payload Queue ──────── 50+ payloads × N params
│
▼
Async Workers ───────── Semaphore-controlled concurrency
(rate limited)
│
▼
Detection Engine
├── Error signatures → DB error regex match
├── Time delay → Response ≥ 4.5s
└── Boolean diff → Content length deviation
│
▼
JSON Report + Console Output + sqli_scan.log
```
## 🛡️ 负责任的漏洞披露
如果您使用此工具发现了真实漏洞:
1. **切勿利用漏洞。**
2. 联系组织的安全团队或使用其负责任的漏洞披露 / Bug Bounty 计划。
3. 在任何公开披露之前,给予他们合理的时间进行修补。
## 📄 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
## ⭐ 致谢
- [OWASP SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection)
- [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings)
- [DVWA 项目](https://github.com/digininja/DVWA)
标签:CISA项目, Python, SQL注入检测, Web安全, 代码质量, 异步爬虫, 无后门, 蓝队分析, 计算机取证, 逆向工具