Arkh4mA4A/SQL-Injection-Scanner
GitHub: Arkh4mA4A/SQL-Injection-Scanner
一个用于网络安全教育的 SQL 注入漏洞演示项目,包含易受攻击的 Web 应用和自动化扫描器,帮助学习者直观理解 SQL 注入攻击原理与防御方法。
Stars: 0 | Forks: 1
# SQL 注入扫描器
一个网络安全项目,通过一个故意包含漏洞的 Flask Web 应用程序和自动化扫描器来演示 SQL 注入漏洞。
为 **Foundations of Cybersecurity** — CSCI 6738 / CSCI 3410 / INFO 4410 课程而开发
## 概述
该项目由两部分组成:
1. **一个易受攻击的 Web 应用程序** — 一个使用 Flask 和 SQLite 构建的虚假银行登录网站(SecureBank),故意包含 SQL 注入漏洞以供演示。
2. **一个自动化扫描器** — 一个 Python 工具,向易受攻击的应用程序发送常见的 SQL 注入 payload,检测攻击是否成功,评估其风险等级,并生成 HTML 报告。
## 项目结构
```
sql_injection_project/
├── setup_db.py # Creates the SQLite database with sample users
├── vulnerable_app.py # Flask web app with intentional SQL injection flaws
├── scanner.py # Automated SQL injection scanner
├── requirements.txt # Python dependencies
```
## 环境要求
- Python 3.x
- Flask
- requests
- colorama
使用以下命令安装所有依赖项:
```
pip install flask requests colorama
```
## 运行说明
### 步骤 1 — 设置数据库
```
python setup_db.py
```
### 步骤 2 — 启动易受攻击的 Web 应用程序
```
python vulnerable_app.py
```
打开浏览器并访问 `http://127.0.0.1:5000`,即可看到 SecureBank 登录页面。
### 步骤 3 — 运行扫描器(在第二个终端中)
```
python scanner.py
```
扫描器将测试两个端点(登录表单和用户搜索页面)上的 17 个 payload,打印颜色编码的结果以解释每次攻击的作用,并将完整的 HTML 报告保存到 `scan_report.html`。
## 易受攻击的端点
| 端点 | 漏洞 |
|---|---|
| `/login` | 用户名字段 — 未经过滤的 SQL 查询允许身份验证绕过 |
| `/search` | 搜索字段 — 未经过滤的 SQL 查询允许数据提取 |
## Payload 示例
| Payload | 类型 | 效果 |
|---|---|---|
| `' OR '1'='1` | 身份验证绕过 | 无需密码即可登录 |
| `' OR 1=1 --` | 身份验证绕过 | 使用 SQL 注释绕过登录 |
| `' UNION SELECT id,username,password,role FROM users --` | 数据提取 | 导出所有用户凭据 |
| `'; DROP TABLE users; --` | 破坏性 | 删除整个 users 表 |
## 风险评级
| 等级 | 颜色 | 描述 |
|---|---|---|
| CRITICAL | 红色 | 破坏性攻击(数据删除) |
| HIGH | 黄色 | 身份验证绕过,数据提取 |
| MEDIUM | 青色 | 盲注技术 |
| LOW | 白色 | 信息探测 |
## 免责声明
本项目仅供**教育目的**。该易受攻击的应用程序是故意设计为不安全的,只能在本地运行。切勿将其部署到公共服务器上。在对任何系统进行漏洞测试之前,请务必获得适当的授权。
## 如何修复 SQL 注入
该漏洞的存在是因为用户输入被直接插入到了 SQL 查询中。修复方法是使用**参数化查询**:
```
# 易受攻击(请勿使用)
query = f"SELECT * FROM users WHERE username = '{username}'"
# 安全(请改用此项)
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
```
标签:CISA项目, CSCI 3410, CSCI 6738, DOE合作, Flask, HTML报告生成, INFO 4410, OPA, Python, SQLite, SQL注入负载, Web安全, 反取证, 安全测试, 安全演示, 安全评估, 攻击性安全, 数据提取, 无后门, 网络安全, 网络安全课程, 自动化扫描器, 蓝队分析, 认证绕过, 逆向工具, 隐私保护, 靶场