melisasvr/Web-Application-Vulnerability-Scanner

GitHub: melisasvr/Web-Application-Vulnerability-Scanner

一个基于 Flask 的本地 Web 漏洞扫描演示工具,用于检测表单中的反射型 XSS 和基础 SQL 注入,并自动生成结构化 PDF 报告。

Stars: 7 | Forks: 2

# Web 应用漏洞扫描器 本地演示扫描器,用于查找 HTML 表单中存在的反射型 XSS 和基础 SQL 注入问题。它附带一个专用的 SQL 演示站点、一个独立的 XSS 演示站点、一个小型 Flask UI,以及一份结构化的 PDF 报告。 ## 更改内容 - 结构化的扫描结果,取代了原有的临时字符串。 - 详细的 PDF 输出,包含摘要、payload、证据和修复建议。 - 打包的演示目标,实际暴露了 XSS 和 SQLi 漏洞。 - 更简洁的 UI,采用克制的样式设计。 - 通过 `.gitignore` 维护仓库规范。 ## 目录结构 - `web_interface.py`:用于提交目标 URL 和下载报告的 Flask UI。 - `scanner.py`:协调抓取、表单发现和漏洞探测。 - `utils.py`:URL 规范化、表单解析和测试 payload 辅助工具。 - `report.py`:在 `static/vulnerability_report.pdf` 中生成 PDF 报告。 - `target_server.py`:故意包含 SQL 注入漏洞的库应用。 - `xss_demo_server.py`:故意包含反射型和存储型 XSS 漏洞的留言板。 - `public/`:扫描器 UI 和演示目标页面的模板。 ## 设置 ``` pip install -r requirements.txt ``` ## 运行演示 1. 启动 SQL 演示目标: ``` python3 target_server.py ``` 2. 启动 XSS 演示目标: ``` python3 xss_demo_server.py ``` 3. 启动扫描器 UI: ``` python3 web_interface.py ``` 4. 打开 `http://127.0.0.1:5000` 并扫描任一演示 URL: ``` http://127.0.0.1:8000 http://127.0.0.1:8001 ``` 每次扫描都会将其 PDF 写入 `static/reports/`,文件名由目标 URL 和扫描时间生成。结果页面会链接到所创建的确切文件。 如果端口 `8000`、`8001` 或 `5000` 已被占用,请覆盖它们: ``` TARGET_PORT=8002 python3 target_server.py XSS_PORT=8003 python3 xss_demo_server.py WEB_PORT=5001 python3 web_interface.py ``` ## 注意事项 - 演示目标故意设置为不安全的,只能在本地使用。 - 该扫描器目前主要关注登录页 URL 上的表单。它不是一个完整的爬虫。 - 如果您需要更广泛的爬取或经过身份验证的扫描,应将其作为单独的步骤添加。
标签:CISA项目, DNS枚举, DOE合作, Flask, OPA, PDF报告生成, Python, SEO检索词, SQL注入检测, Web安全, Web安全扫描, Web应用防火墙测试, XSS检测, 加密, 反取证, 反射型XSS, 多模态安全, 安全工具开发, 安全评估, 无后门, 漏洞扫描器, 网络安全, 网络安全工具, 蓝队分析, 表单解析, 逆向工具, 隐私保护, 靶场