sharafdin/blackSQL
GitHub: sharafdin/blackSQL
blackSQL 是一个用 Rust 编写的 SQL 注入自动化扫描与利用工具,解决手动检测效率低与绕过 WAF 难的问题。
Stars: 25 | Forks: 1
# blackSQL
一个支持基于错误型、联合型、布尔型和时间型检测技术的先进 SQL 注入扫描器。
**Rust 实现**是主要版本。原始 Python 实现保留在 [`legacy/`](legacy/) 中供参考。
## 功能特性
- 多种 SQL 注入检测技术:
- 基于错误的 SQL 注入
- 基于布尔的 SQL 注入
- 基于时间的 SQL 注入
- 基于联合的 SQL 注入
- 多线程扫描,提升速度
- 数据库类型识别(MySQL、PostgreSQL、MSSQL、Oracle、SQLite)
- 数据库枚举(表、列、数据)支持 `--dump`
- 彩色 CLI 输出
- 文件日志(`-o` 或 `logs/blacksql_.log`)并导出 JSON/CSV 到 `output/`
- WAF 检测与绕过技术
## 安装
**从源码安装(推荐):**
```
git clone https://github.com/sharafdin/blackSQL.git
cd blackSQL
cargo build --release
```
**安装二进制文件(构建后):**
```
cargo install --path .
# 然后从任何地方运行
blacksql -u "http://example.com/page.php?id=1"
```
**旧版 Python 版本:**
```
cd legacy
pip install -r requirements.txt
```
## 使用(Rust)
基础扫描:
```
./target/release/blacksql -u "http://example.com/page.php?id=1"
```
带选项:
```
./target/release/blacksql -u "http://example.com/page.php?id=1" \
--level 3 \
--threads 10 \
--dump \
-o /path/to/scan.log
```
| 选项 | 描述 |
|------|------|
| `-u, --url` | 目标 URL(必需)。 |
| `-p, --params` | 要扫描的参数(例如 `id,page`)。默认从 URL 或 `--data` 提取。 |
| `--data` | POST 请求体(例如 `id=1&page=2`),用于基于 POST 的扫描。 |
| `-c, --cookies` | Cookie 字符串(例如 `PHPSESSID=value; admin=0`)。 |
| `-t, --threads` | 线程数(默认:5)。 |
| `--timeout` | 请求超时(秒,默认:10.0)。 |
| `--proxy` | 代理 URL(例如 `http://127.0.0.1:8080`)。 |
| `--level` | 扫描深度 1–3(默认:1)。数值越高,载荷越多。 |
| `--dump` | 发现参数存在漏洞时,枚举数据库、表、列并包含在结果中。 |
| `--batch` | 非交互模式(无提示)。 |
| `-o, --output` | **日志文件路径**。所有扫描信息写入该文件。若未指定,则使用 `logs/blacksql_.log`。发现漏洞时,JSON/CSV 结果始终写入 `output/blacksql_results_.json` 和 `.csv`。 |
**输出位置:**
- **日志文件:** `-o` 指定的路径,或 `logs/blacksql_YYYYMMDD_HHMMSS.log`。
- **JSON/CSV(发现漏洞时):** `output/blacksql_results_YYYYMMDD_HHMMSS.json` 和 `.csv`。
### 示例(Rust)
扫描特定参数:
```
./target/release/blacksql -u "http://example.com/page.php?id=1" -p "id"
```
使用 POST 数据扫描:
```
./target/release/blacksql -u "http://example.com/login.php" --data "username=admin&password=test"
```
使用代理并提高扫描深度:
```
./target/release/blacksql -u "http://example.com/page.php?id=1" --proxy "http://127.0.0.1:8080" --level 3
```
发现漏洞时导出数据库信息:
```
./target/release/blacksql -u "http://example.com/page.php?id=1" --dump
```
### 旧版 Python 使用
```
cd legacy && python blacksql.py -u "http://example.com/page.php?id=1"
```
请参考上表中的相同选项;`-o` 在两个版本中均为日志文件路径。
## 免责声明
本工具仅供合法安全测试与教育用途。请勿在未获得授权的情况下对任何网站或系统使用本工具。作者不对任何误用或由此造成的损害负责。
## 许可证
blackSQL 在 [MIT 许可证](LICENSE) 下开源。
标签:Cookie注入, Ethical Hacking, HTTP参数测试, JSON导出, Oracle, PostgreSQL, POST数据注入, Rust安全工具, SQLite, WAF绕过, Web安全, 代理扫描, 可视化界面, 多线程扫描, 安全测试, 布尔注入, 开源安全工具, 攻击性安全, 数据库指纹识别, 数据库枚举, 文件日志, 文档结构分析, 日志导出, 时间盲注, 联合查询注入, 蓝队分析, 逆向工具, 逆向工程平台, 错误注入, 颜色化CLI, 黑盒测试