sophireaks/Vulnerability-Scanner

GitHub: sophireaks/Vulnerability-Scanner

一款带 Flask Web 界面和 HTML 报告输出的模块化轻量 Web 漏洞扫描器,专注于非破坏性安全检查。

Stars: 0 | Forks: 0

# 漏洞扫描器 一个小巧、模块化的 **Web 漏洞扫描器**,带有 Flask 前端和 HTML 报告输出。本项目作为个人网络安全学习项目而构建,旨在练习安全的 Python 开发、模块化设计以及清晰的漏洞报告。 ## 功能 - 基于 Flask 构建的 **Web UI**,支持通过浏览器启动扫描 - **模块化 Python 核心**:独立的 `discovery`、`scanner`、`reporting` 和 `tasks` 模块,各部分可独立扩展 - **非破坏性检查** — 仅限被动观察和安全探测 - **HTML 报告输出** — 可读性强、易于共享的发现结果,可直接发送给审阅者 - **防御性编程**:具备超时、异常处理和结构化日志功能,确保工具能够优雅降级而非直接崩溃 - 发布了 **SECURITY.md** 政策,用于负责任的漏洞披露 ## 技术栈 | 组件 | 工具 | |---|---| | 语言 | Python 3.11+ | | Web 框架 | Flask | | 持久化 | SQLite (通过 SQLAlchemy) | | 报告 | HTML 模板 | | 并发 | 后台任务 | ## 项目结构 ``` . ├── app.py # Flask application entrypoint ├── discovery.py # Target discovery and enumeration ├── scanner.py # Vulnerability checks ├── reporting.py # HTML report generation ├── tasks.py # Background scan tasks ├── templates/ # Jinja2 templates for the web UI ├── vulnerabilities/ # Individual check definitions ├── config.ini # Scanner configuration ├── requirements.txt # Python dependencies ├── vulnerability_report.html # Sample report ├── SECURITY.md # Responsible disclosure policy └── README.md ``` ## 快速入门 ### 前置条件 - Python 3.11+ - 一个您拥有**授权**进行扫描的目标(例如 `127.0.0.1`、本地虚拟机或 TryHackMe / HackTheBox 机器) ### 安装 ``` git clone https://github.com/sophireaks/Vulnerability-Scanner.git cd Vulnerability-Scanner python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt python app.py ``` 然后在浏览器中打开 Flask 打印的 URL(通常是 `http://127.0.0.1:5000`)。 ### 或者使用 Docker 如果您更喜欢使用 Docker 而非本地 Python 环境: ``` docker build -t vuln-scanner:dev . docker run --rm -p 5000:5000 vuln-scanner:dev ``` 然后在浏览器中打开 `http://127.0.0.1:5000`。 ## 配置 编辑 `config.ini` 以调整默认行为(超时时间、允许的目标、输出路径)。 ## 报告 扫描完成后,将生成一份 HTML 报告。项目中包含一份示例文件 `vulnerability_report.html`。 ## 安全使用 在使用此工具之前,请阅读 [`SECURITY.md`](./SECURITY.md)。简而言之: - 仅扫描您拥有或获得**书面**许可测试的系统。 - 作者对任何滥用行为不承担责任。 - 所有检查在设计上均是非破坏性的——请勿修改此工具以针对您无法控制的系统尝试进行利用。 ## 路线图 - [ ] 添加多线程扫描以实现更快的扫描速度 - [ ] 集成轻量级 CVE 查找功能用于服务指纹识别 - [ ] 将发现结果导出为 JSON 格式,以便导入 SIEM - [ ] 为每项发现结果添加基础的 CVSS 严重性评分 - [ ] 在 Web UI 中加入身份验证和按用户划分的扫描历史记录 ## 构建此项目的收获 - 如何使用清晰的模块边界(`discovery`、`scanner`、`reporting`、`tasks`)来构建 Python 项目。 - 如何在专注于安全的后端之上构建小型的 Flask Web UI。 - **防御性编程**在安全工具中的重要性——崩溃的安全工具对任何人都毫无帮助。 - 真实扫描器遵循的端到端工作流程:**发现 -> 枚举 -> 检测 -> 报告**。 - 如何撰写清晰、可执行且无歧义的发现结果——这是真实 SOC 和渗透测试报告中期望的格式。 ## 作者 **Sophireak Soeng** 信息技术工程专业学生,金边皇家大学 [LinkedIn](https://www.linkedin.com/in/sophireak-soeng-10b668265/) · [TryHackMe](https://tryhackme.com/p/Sophireak.S) · sophireaksoeng@gmail.com ## 许可证 MIT License — 详见 `LICENSE` 文件。
标签:Flask, HTML报告, Jinja2, Python, Python开发, Snort++, SQLAlchemy, SQLite, Web安全, Web应用扫描, 加密, 反取证, 多模态安全, 安全评估, 密码管理, 插件系统, 无后门, 模块化设计, 漏洞扫描器, 白盒测试, 网络安全, 网络安全学习, 自动化修复, 蓝队分析, 被动扫描, 请求拦截, 逆向工具, 隐私保护, 非破坏性测试