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安全, 反取证, 安全测试, 安全演示, 安全评估, 攻击性安全, 数据提取, 无后门, 网络安全, 网络安全课程, 自动化扫描器, 蓝队分析, 认证绕过, 逆向工具, 隐私保护, 靶场