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安全, 加密, 无后门, 漏洞扫描器, 自定义脚本, 蓝队分析, 逆向工具