Garima040106/web-vulnerability-scanner-django
GitHub: Garima040106/web-vulnerability-scanner-django
这是一款基于 FastAPI 构建的紧凑型 Web 漏洞扫描平台,支持异步检测常见 Web 安全问题并自动生成 PDF 评估报告。
Stars: 0 | Forks: 0
# Web 漏洞扫描器
一个紧凑型 Web 漏洞扫描平台,支持异步扫描、漏洞分类和 PDF 报告导出。
## 功能介绍
- 扫描允许的公共目标以检测常见 Web 问题(XSS、SQLi、headers、IDOR、开放重定向、端口)。
- 通过 FastAPI job 端点运行扫描,支持状态轮询和 PDF 下载。
- 生成格式化的 PDF 报告,包含漏洞详情、CVSS 风格评分、证据片段和附录元数据。
- 包含一个位于 `/` 的浏览器 UI,便于快速手动使用。
## 架构
```
flowchart LR
U[User / Browser] --> API[FastAPI Service]
API --> Q[In-Memory Job Queue]
Q --> ENG[Async Scanner Engine]
ENG --> MOD[Scanner Modules\nXSS SQLi Headers IDOR Redirect Ports]
API --> REP[PDF Report Generator]
REP --> OUT[reports/*.pdf]
```
## 快速开始
```
python3 -m venv cyenv
source cyenv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000
```
打开 `http://localhost:8000`
## 快速测试(60 秒)
```
# Create a scan
curl -s -X POST http://127.0.0.1:8000/scan \
-H "Content-Type: application/json" \
-d '{"target_url":"https://example.com","options":{"max_depth":1}}'
# Poll job status
curl -s http://127.0.0.1:8000/scan/
# Download report
curl -L http://127.0.0.1:8000/scan//report -o report.pdf
```
## Docker 运行
```
docker build -t web-vuln-scanner .
docker run --rm -p 8000:8000 web-vuln-scanner
```
打开 `http://localhost:8000`
## Render 部署 (Docker)
- 使用 **Docker** 服务类型。
- 无需自定义启动命令(Docker `ENTRYPOINT` 已设置)。
- 应用自动绑定到 `PORT`(`${PORT:-8000}`)。
- 推荐环境变量:
- `MAX_CONCURRENT_SCANS=3`
- `SCAN_TIMEOUT_SECONDS=120`
- 健康检查路径:`/health`
## 冒烟测试状态
- 本地 API 冒烟测试:通过(`/`、`/health`、`/scan`、`/scan/{id}`、`/scan/{id}/report`)。
- PDF 生成:通过(报告下载成功)。
- Docker 冒烟测试:通过(镜像构建成功,`/health` 返回 `ok`)。
## 主要端点
- `POST /scan` → 创建扫描任务
- `GET /scan/{job_id}` → 任务状态 + 漏洞结果
- `GET /scan/{job_id}/report` → 下载 PDF
- `GET /health` → 健康检查(JSON/API,HTML/浏览器)
## 项目布局
- `app/main.py` → FastAPI 路由、任务生命周期和浏览器 UI
- `scanner_project/scanner/scanner_engine/` → 异步扫描器核心 + 模块
- `scanner_project/scanner/report_generator.py` → PDF 生成
- `reports/` → 生成的报告文件
## 安全提示
仅用于您拥有或已明确获得测试许可的目标。
## 故障排除
- 如果 Docker 构建因 Django 版本错误而失败,请确保 Python 基础镜像是 `3.12`。
- 如果在某些目标上扫描失败,请检查目标是否为公共目标,且未被 DNS/IP 安全检查拦截。
标签:AV绕过, CVSS评分, DOE合作, FastAPI, GPT, IDOR, PDF报告生成, Web安全, Web漏洞扫描, XSS检测, 反取证, 安全评估, 异步编程, 扫描器, 数据统计, 漏洞管理, 端口扫描, 网络安全, 网络测绘, 蓝队分析, 请求拦截, 逆向工具, 隐私保护