zainabtariq24/VulnScanner
GitHub: zainabtariq24/VulnScanner
VulnScanner 是一款带实时 Dashboard 和自动爬虫的 Web 应用漏洞扫描器,专为教育目的演示常见 OWASP 漏洞的检测与报告流程而设计。
Stars: 0 | Forks: 0
# 🛡️ VulnScanner
### 带有实时 Web Dashboard 的 Web 应用漏洞扫描器
*检测最常见的 OWASP Web 漏洞,可视化结果,并导出专业的 PDF 报告。*
[](https://github.com/zainabtariq24/VulnScanner/actions/workflows/ci.yml)
[](https://www.python.org/)
[](https://flask.palletsprojects.com/)
[](LICENSE)
[](#-disclaimer)
## 📖 概述
**VulnScanner** 是一个端到端的 Web 安全工具包,由三个协同工作的部分组成,旨在演示完整的*攻击 → 检测 → 报告*工作流:
| 组件 | 功能 |
|-----------|--------------|
| 🎯 **模拟易受攻击网站** | 一个注入了**故意设计**的漏洞的 Flask 应用,用作安全、合法的测试目标。 |
| 🔍 **扫描引擎** | 一个纯 Python 引擎,用于爬取目标并探测 10 类漏洞,报告带有严重性评级的发现结果。 |
| 🖥️ **Web Dashboard** | 一个精美的 Web UI,用于运行扫描器、流式传输实时进度、绘制结果图表并导出 PDF 报告。 |
## ✨ 功能
- **9 项漏洞检查** — SQL Injection、Reflected & Stored XSS、CSRF、IDOR、Open Redirect、不安全的 Cookie flags、缺失的 Security Headers、HTTPS/HSTS 以及暴力破解 Rate Limiting。
- **🕷️ 自动爬虫** — 对目标(同域名)进行蜘蛛爬取以发现链接和表单,然后探测它找到的所有内容,因此覆盖范围不限于硬编码的 endpoint 列表。
- **💾 持久化扫描历史** — 已完成的扫描存储在 SQLite 中,重启后依然保留,可在专门的历史记录页面中浏览。
- **📤 多格式导出** — 支持将任何报告下载为 **PDF**、**JSON** 或 **CSV**。
- **严重性评分** — 每项发现均被评为 `HIGH` / `MEDIUM` / `LOW` / `INFO`。
- **实时 Web Dashboard** — 实时进度条、可展开的发现结果以及交互式圆环图 (Chart.js)。
- **CLI 模式** — 在终端中运行完整扫描,并输出整洁的表格报告。
- **可操作的修复建议** — 每个漏洞均附带具体的修复建议。
- **线程安全的扫描引擎** — 支持并发扫描,具有有界的内存状态。
- **经过测试** — 自动化的 `pytest` 测试套件(16 项测试),涵盖检测逻辑和爬虫。
## 🖼️ 截图
**扫描输入**

**结果 Dashboard** — 摘要卡片、交互式图表、可展开的发现结果以及修复建议

**扫描历史** — 跨重启持久化保存

## 🏗️ 架构
```
┌───────────────────────────┐
│ Web Dashboard (8080) │ Flask + Chart.js + ReportLab
│ scanner_web/app.py │
└─────────────┬─────────────┘
│ imports
▼
┌───────────────────────────┐
│ Scanner Engine │ requests + prettytable
│ scanner/scanner.py │
└─────────────┬─────────────┘
│ HTTP probes
▼
┌───────────────────────────┐
│ Target Website (5000) │ any authorised URL —
│ mock_website/app.py │ bundled mock site by default
└───────────────────────────┘
```
## 🧰 技术栈
- **语言:** Python 3.10+
- **Web 框架:** Flask 3
- **HTTP 客户端:** Requests
- **报告生成:** ReportLab (PDF), PrettyTable (CLI)
- **前端:** Vanilla JS, Chart.js, custom CSS
- **测试:** pytest
## 🚀 快速开始
### 1. 前置条件
- Python **3.10 或更高版本**
- `pip` 以及(推荐)虚拟环境
### 2. 安装
```
# Clone the repository
git clone 标签:CISA项目, Flask, Python, Web安全, 加密, 后端开发, 字符串匹配, 安全规则引擎, 无后门, 漏洞扫描器, 自动化爬虫, 蓝队分析, 逆向工具