vrajmodi4/Web-Vulnerability-Scanner
GitHub: vrajmodi4/Web-Vulnerability-Scanner
一款基于 Python 与 Flask 的 Web 漏洞扫描与评估系统,通过自动化爬虫与主动探测识别常见漏洞并持久化审计。
Stars: 0 | Forks: 0
# 🛡️ Sentinel Sec - Web 漏洞扫描器




一款使用 Python 和 Flask 构建的全面且现代化的 **Web 漏洞扫描器**。该工具旨在主动分析 Web 应用,能够自动抓取页面、评估服务器安全配置,并主动测试常见漏洞,例如 **SQL 注入 (SQLi)** 和 **跨站脚本攻击 (XSS)**。
所有扫描结果、用户数据和分析指标都会被无缝记录到本地部署的 MongoDB 数据库中,以便进行结构化的报告生成和审计。
## ✨ 功能
- **🌐 自动化 Web 抓取**:递归发现内部链接,并提取目标网站中嵌入的 HTML 表单(包括 `GET` 和 `POST`)。
- **🔍 主动漏洞扫描**:
- **SQL 注入 (SQLi)**:测试 URL 参数和表单输入中是否存在基于布尔盲注和基于报错的 SQL 注入。
- **跨站脚本攻击 (XSS)**:评估 URL 查询参数是否存在反射型 XSS 漏洞。
- **📊 深度目标分析**:评估 Web 服务器标头,以确保遵循 `HSTS`、`CSP`、`X-Frame-Options` 和 `X-Content-Type-Options` 等最佳实践。检测前端技术(如 React、Vue 等)和服务器软件。
- **📈 安全评级系统**:根据标头执行情况和信息泄露情况,自动生成总体安全评级(**A 到 F**)。
- **🛡️ RBAC 与身份验证**:安全的用户注册、密码重置、异步电子邮件通知以及管理仪表板。
- **🗃️ 持久化审计 (`MongoDB`)**:使用多集合关系 schema 来跟踪全面的测试日志、用户配置文件和具体的测试结果。
## 💻 技术栈
- **后端**:Python (Flask)
- **数据库**:MongoDB (`pymongo`)
- **抓取/分析**:`BeautifulSoup4`, `requests`
- **安全**:`werkzeug.security` (密码哈希)
- **邮件发送**:`smtplib`
## ⚙️ 前置条件
在开始之前,请确保您已满足以下要求:
- 已安装 **Python 3.8** 或更高版本。
- 已安装 **MongoDB Community Server** 并在 `localhost:27017`(默认端口)上正常运行。
## 🚀 安装与配置
1. **克隆仓库**或导航至项目根目录。
2. **创建虚拟环境(推荐):**
python -m venv venv
# 在 Windows 上:
venv\Scripts\activate
# 在 macOS/Linux 上:
source venv/bin/activate
3. **安装依赖项:**
pip install -r requirements.txt
4. **[可选] 配置异步邮件:**
若要在用户注册时启用欢迎邮件,请打开 `app.py` 并在 `--- EMAIL CONFIGURATION ---` 块中修改 `SENDER_EMAIL` 和 `SENDER_PASSWORD` 的默认配置,填入您真实的 SMTP 凭证。
5. **确保 MongoDB 正在运行:**
验证您的本地 MongoDB 实例是否处于活动状态。应用程序将直接连接到 `"mongodb://localhost:27017/"`。
## 🎯 用法
1. **启动应用程序:**
python app.py
2. **打开仪表板:**
打开您偏好的 Web 浏览器并导航至:
`http://127.0.0.1:5000`
3. **运行扫描:**
- 创建一个普通用户账户或登录。
- 提供目标 Web 地址(例如 `http://testphp.vulnweb.com`)。
- 点击 **Scan**。
- 等待目标分析、链接抓取和漏洞测试完成。
4. **查看数据库日志:**
您可以直接通过内置的 Mongo shell 检查所有已完成的扫描:
mongosh
> use scanner_db
> db.tests.find().pretty()
> db.test_results.find().pretty()
## 👑 管理员仪表板
该应用程序具有一个安全的 admin 面板,可提供完整的平台可见性——允许管理员清除旧日志、查看已注册代理的资料,并分析全平台的测试频率。
要访问管理界面,请导航至 `/admin_login` 或点击管理门户链接。
- **默认管理员邮箱:** `admin@sentinel.com`
- **默认管理员密码:** `admin`
*(我们强烈建议在标准的内部部署中修改 `app.py` 中的这些配置)。*
## 📂 项目结构
- `app.py` - 主 Flask 应用程序路由、用户 session 处理以及数据库集成。
- `crawler.py` - 负责站点链接和 HTML 表单的递归发现逻辑。
- `analyzer.py` - 执行深度的标头评估和技术栈指纹识别。
- `sqli_test.py` - 用于识别 SQL 注入的 payload 投递例程。
- `xss_test.py` - 用于识别跨站脚本攻击 (XSS) 的 payload 投递例程。
- `db.py` - MongoDB 连接绑定。
## ⚠️ 法律免责声明
**Sentinel Sec Web 漏洞扫描器** 的开发主要用于教育目的、授权的安全审计以及道德黑客环境。
**严禁**使用此软件对您并不明确拥有或未获得明确书面许可进行调查的 Web 应用程序、服务器或平台进行扫描、测试或交互。开发者和贡献者对此不承担任何责任,也不对因使用此工具而引起的任何滥用、损害或法律后果负责。
标签:CISA项目, Flask, MongoDB, Python, Web漏洞扫描, 反取证, 后端开发, 安全评估, 实时处理, 数据泄露, 无后门, 自动化爬虫