Dumku-13/Vulnprobe
GitHub: Dumku-13/Vulnprobe
一款模块化黑盒 Web 漏洞扫描器,提供九大检测模块、会话认证仪表盘及带合规映射的自动化 PDF 报告。
Stars: 1 | Forks: 0
# VulnProbe
一款模块化的黑盒 Web 漏洞扫描器,带有会话认证仪表盘、用户专属扫描历史记录以及自动化 PDF 报告功能。使用 Python 结合 Flask + SQLite 构建。
## 功能
- **九大扫描模块** — 每个都是一个独立的 Python 模块,返回统一的发现字典列表(包含 `vuln_type`、`payload`、`evidence`、`severity`):
- SQL 注入(基于错误、基于布尔型、基于 OR/UNION)
- 反射型 XSS
- 本地文件包含(路径遍历)
- IDOR(参数篡改)
- 端口扫描 + banner grabbing
- 恶意文件上传(扩展名绕过)
- 目录枚举(多线程字典)
- CSRF(token + 安全响应头检查)
- 认证(默认凭据暴力破解、弱会话 token)
- **全量扫描模式** — 指定一个 URL,触发全部九个模块,生成一份汇总的 PDF 报告。
- **会话认证** — 使用 bcrypt 哈希加密的凭据存储在 SQLite 中。
- **操作员仪表盘** — 用户信息、严重程度分布以及完整的扫描历史。
- **扫描持久化** — 每次运行都会按用户保存(包含 JSON 格式的发现结果、严重程度摘要、时间戳、报告路径)。
- **PDF 报告** (ReportLab) — 执行摘要、针对各项发现的修复建议、GDPR 和 SOC 2 控制映射,以及面向非营利组织的业务影响评估。
## 架构
```
app.py Flask app — auth, scan endpoints, dashboard, reports
db.py SQLite layer (users + scans tables)
auth.py bcrypt verify/create (delegates storage to db.py)
report_generator.py ReportLab PDF builder
_scanner.py One file per scanner; importable + CLI
templates/
login.html Login page
dashboard.html Operator dashboard
index.html Single-page scanner UI (tab per module + Full Scan)
```
每个扫描模块都可以被导入(供 `app.py` 使用),也可以独立运行(`python lfi_scanner.py`)。Flask 应用会导入这些模块,并将每个模块作为一个 `POST /api/scan/` endpoint 暴露出来;扫描结果会被标准化并持久化到 `scans` 表中。
## 安装说明
```
# 从项目目录
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/macOS
python -m pip install flask bcrypt requests reportlab pillow
# 创建 admin 用户(写入 SQLite DB)
python seed_user.py
# 运行
python app.py
```
应用将在 **http://127.0.0.1:5001** 启动。默认初始化的登录凭据是 `admin` / `vulnprobe2025` —— 在正式使用前,请在 `seed_user.py` 中进行修改。
首次运行时,`db.py` 会创建 `vulnprobe.db`,并且(如果存在的话)会将现有的 `users.json` 迁移到 `users` 表中。
## 使用说明
1. 在 `/login` 登录。
2. 在仪表盘中,打开 **Scanner**。
3. 选择一个模块标签页并输入目标,或者针对单个 URL 使用 **Full Scan** 执行所有模块。
4. 发现结果将实时显示;可以下载单次扫描或完整的 PDF 报告。
5. 每次扫描都会记录在您的仪表盘历史中。
## 技术
Python · Flask · SQLite · bcrypt · ReportLab · requests
标签:CISA项目, DOE合作, Flask, Python, Web安全, 加密, 无后门, 漏洞扫描器, 自定义脚本, 蓝队分析, 逆向工具