MFDosiir/web-vuln-scanner

GitHub: MFDosiir/web-vuln-scanner

一个基于 Python 的教育性命令行 Web 安全扫描工具,用于检测网站安全头配置缺失和敏感文件暴露问题。

Stars: 0 | Forks: 0

# 🔍 Web 漏洞扫描器 一个轻量级的教育性命令行工具,用于扫描网站的常见 安全配置错误——旨在学习真实的 AppSec 概念,并在 作品集场景中展示它们。 ## 检查内容 ### 1 · 安全 Header 检查 HTTP 响应头中缺失或配置不当的安全控制。 每个 Header 都对应 [OWASP Top 10](https://owasp.org/www-project-top-ten/) 中的一个真实攻击类别。 | Header | 防范的攻击 | OWASP 参考 | |---|---|---| | `Strict-Transport-Security` | SSL 剥离 / 降级攻击 | A02 | | `Content-Security-Policy` | 跨站脚本攻击 (XSS) | A03 | | `X-Frame-Options` | 点击劫持 | A05 | | `X-Content-Type-Options` | MIME 类型嗅探攻击 | A05 | | `Referrer-Policy` | 会话 token 泄露 | A01 | | `Permissions-Policy` | 功能滥用(摄像头、麦克风、定位) | A05 | ### 2 · 暴露的敏感文件 探测约 25 个常见路径,查找绝对不应公开访问的文件: `.git/config`、`.env`、`phpinfo.php`、数据库转储文件、管理后台面板等。 ## 快速开始 ``` # 克隆仓库 git clone https://github.com/YOUR_USERNAME/web-vuln-scanner.git cd web-vuln-scanner # 安装依赖(需要 Python 3.8+) pip install -r requirements.txt # 扫描目标 — 终端输出 python -m scanner.main https://example.com # 生成 HTML 报告 python -m scanner.main https://example.com --output html # → 报告保存至 reports/report_YYYYMMDD_HHMMSS.html # 运行测试 pytest tests/ -v ``` ## 示例输出(终端) ``` ============================================================ SCAN REPORT Target : https://juice-shop.herokuapp.com Time : 2024-12-01 14:32:11 ============================================================ [ Security Headers ] 1 passed 5 failed (of 6 checked) ✔ Strict-Transport-Security ✘ Content-Security-Policy [HIGH] Why: Missing CSP makes XSS attacks far easier ... Ref: OWASP A03 – Injection (XSS) Fix: Add header → default-src 'self'; script-src 'self' ... [ Exposed Files ] Checked 25 paths · 2 exposed · 0 blocked [EXPOSED] CRITICAL /.git/config Git config file — can expose repo URL and credentials URL: https://juice-shop.herokuapp.com/.git/config ``` ## 项目结构 ``` web-vuln-scanner/ ├── scanner/ │ ├── main.py # CLI entry point │ ├── report.py # Terminal + HTML report generator │ └── checks/ │ ├── headers.py # Security headers check (+ OWASP refs) │ └── exposed_files.py # Sensitive file/path probing ├── tests/ │ └── test_headers.py # Unit tests (pytest) ├── reports/ # Generated HTML reports (git-ignored) ├── requirements.txt └── README.md ``` ## 路线图(计划功能) - [ ] 将基础 XSS payload 注入发现的表单中 - [ ] SQL 注入检测(基于错误) - [ ] 服务器 banner / 版本泄露检测 - [ ] Cookie 标志分析(`Secure`、`HttpOnly`、`SameSite`) - [ ] 用于提升速度的多线程扫描 - [ ] 用于 CI/CD pipeline 集成的 JSON 输出 - [ ] 用于自定义路径列表和 payload 的配置文件 ## 涵盖概念 构建此项目将教会你: - HTTP 请求/响应循环在 Header 层面是如何运作的 - OWASP Top 10 以及每个类别在实际中的含义 - 为什么暴露 `.git`、`.env` 和类似文件会造成灾难性后果 - 专业扫描工具(Nikto、OWASP ZAP)是如何进行枚举的 - Python `requests`、参数解析、文件 I/O 以及单元测试 ## 安全的练习目标 这些是**专门设计为包含漏洞**的、用于学习的应用: | 目标 | 如何运行 | |---|---| | [OWASP Juice Shop](https://owasp.org/www-project-juice-shop/) | `docker run -p 3000:3000 bkimminich/juice-shop` | | [DVWA](https://dvwa.co.uk/) | `docker run -p 80:80 vulnerables/web-dvwa` | | [HackTheBox](https://www.hackthebox.com/) | 基于 Web 的实验室(提供免费层级) | ## 许可证 MIT — 可免费使用、学习和扩展。
标签:Python, Web安全, 主机安全, 安全基线检查, 安全规则引擎, 无后门, 蓝队分析, 逆向工具