vk-vaishnavi10/web-vulnerability-scanner

GitHub: vk-vaishnavi10/web-vulnerability-scanner

基于 Python Flask 的自动化 Web 应用安全扫描器,支持爬取目标、检测常见漏洞并生成可视化风险评估报告。

Stars: 0 | Forks: 0

# Web 应用漏洞扫描器 一个基于 Python + Flask 的自动化 Web 应用安全扫描器。它会爬取一个**已授权的**目标,发现页面和表单,探测常见的漏洞,可选择使用 **OWASP ZAP** 进行验证,评估风险,并生成专业的 HTML 报告。基于 Requests、BeautifulSoup、Jinja2 和 ZAP API 构建。 ## 功能 - **爬虫** — 限制作用域的爬取,支持 `robots.txt` 感知、`sitemap.xml` 种子填充,以及表单 + URL 参数发现。 - **SQL 注入** — 基于错误/布尔/时间的检测(仅限检测,不进行数据窃取)。 - **XSS (Reflected)** — 独特的金丝雀标记;标记未经编码即被反射的输入。 - **身份验证失效** — cookie 标志 (Secure / HttpOnly / SameSite)、HTTPS/HSTS、受保护路径访问、会话固定。 - **安全标头** — CSP、HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy。 - **OWASP ZAP** — 通过 ZAP API 进行 spider + active scan,告警将合并到发现结果中。 - **风险引擎** — 严重程度加权 → 0–100 分及风险等级。 - **仪表盘 UI + 报告** — 深色安全控制台界面,带有径向评分仪表;可下载的 Jinja2 HTML 报告(可通过 WeasyPrint 可选生成 PDF)。 ## 设置 (macOS / Linux) 使用虚拟环境,以便将软件包与系统 Python 隔离: ``` cd Web-Vulnerability-Scanner python3 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt ``` ## 运行 ``` source .venv/bin/activate # if not already active python app.py ``` 在浏览器中打开 **http://127.0.0.1:5002**。使用 **Ctrl+C** 停止服务器。 要使用不同的端口: ``` PORT=5055 python app.py ``` ## 如何使用 1. 输入一个您已获授权测试的**目标 URL**。 2. 勾选 **"I confirm I am authorized to test this target."**(我确认我已获得授权测试此目标。) 3. 点击 **Start scan**(开始扫描)。页面将在爬取时等待(在终端中查看进度),然后显示分数、严重程度统计和发现结果。 4. 点击 **Download full report**(下载完整报告)以获取独立的 HTML 报告。 ## 安全的练习目标 仅针对您控制的应用程序或专门为此构建的应用程序进行测试: - `http://testphp.vulnweb.com` — 公开的、故意遗留漏洞的站点(Acunetix 演示) - **OWASP Juice Shop** — `docker run -d -p 3000:3000 bkimminich/juice-shop` → 扫描 `http://localhost:3000` - **DVWA** — 经典的本地 PHP 漏洞应用程序 ## 使用 OWASP ZAP(可选) 在 `config/config.py` 中设置 `enable_zap = True`,然后以无头模式 (headless) 启动 ZAP: ``` zap.sh -daemon -port 8080 -config api.key=YOUR_KEY export ZAP_API_KEY=YOUR_KEY ``` 若要在 ZAP 中同时捕获扫描器自身的流量,请在配置中设置 `proxy = "http://127.0.0.1:8080"`。 ## 配置 所有可调参数都位于 `config/config.py` 中:爬取限制 (`max_pages`、`max_depth`)、请求间隔 `request_delay`、模块开关、受保护路径,以及用于会话固定测试的可选认证登录块。降低爬取限制以进行更快的演示运行。 ## 项目结构
标签:CISA项目, DOE合作, OWASP ZAP, Python Flask, Splunk, Web应用漏洞扫描, 字符串匹配, 爬虫技术, 逆向工具