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, 多模态安全, 安全工具开发, 安全评估, 无后门, 漏洞扫描器, 网络安全, 网络安全工具, 蓝队分析, 表单解析, 逆向工具, 隐私保护, 靶场