gagan2006-hacked/Web-vulnerability-scanner
GitHub: gagan2006-hacked/Web-vulnerability-scanner
基于 OWASP ZAP 的全栈 Web 漏洞扫描器,提供用户认证、扫描调度、漏洞告警管理与 PDF 报告导出功能。
Stars: 0 | Forks: 0
# Web 漏洞扫描器
一个达到专业实习水平的全栈漏洞扫描器 MVP。
## 技术栈
- 前端:React, Vite, Tailwind CSS
- 后端:Spring Boot, Spring Security, JWT
- 数据库:MySQL
- 扫描引擎:OWASP ZAP API
- 部署:Vercel 前端,Render 后端
## MVP 功能
- 基于 JWT 的注册和登录
- 提交公开网站 URL 进行扫描
- 屏蔽 localhost、私有 IP 和内部主机名
- 通过 OWASP ZAP 集成层启动扫描任务
- 将扫描历史和漏洞警报存储在 MySQL 中
- 面向仪表盘的扫描摘要 API
- 严重程度、OWASP Top 10 映射、建议和安全评分
- PDF 报告导出 endpoint
- 基础的内存级 API 速率限制
- Admin/User 角色
## 项目结构
```
web-vulnerability-scanner/
backend/ Spring Boot REST API
frontend/ React + Tailwind app scaffold
docs/ Architecture, schema, API, deployment notes
```
## 后端快速开始
1. 创建 MySQL 数据库:
```
CREATE DATABASE vuln_scanner CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 配置环境变量:
```
DB_URL=jdbc:mysql://localhost:3306/vuln_scanner
DB_USERNAME=root
DB_PASSWORD=your_password
JWT_SECRET=change-this-to-a-very-long-random-secret-at-least-32-characters
ZAP_BASE_URL=http://localhost:8081
ZAP_API_KEY=
ZAP_MOCK=true
FRONTEND_ORIGIN=http://localhost:5173
```
3. 运行后端:
```
cd backend
mvn spring-boot:run
```
4. 测试健康状态:
```
curl http://localhost:8080/api/health
```
## 前端快速开始
```
cd frontend
npm install
npm run dev
```
## OWASP ZAP 本地设置
在 MVP 开发阶段,请保持 `ZAP_MOCK=true`。
当准备好进行真实扫描时,运行 ZAP daemon:
```
docker run -u zap -p 8081:8080 -i ghcr.io/zaproxy/zaproxy:stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.disablekey=true
```
然后设置:
```
ZAP_MOCK=false
ZAP_BASE_URL=http://localhost:8081
```
仅扫描您拥有或获得书面测试许可的网站。
## 文档
- [架构](docs/ARCHITECTURE.md)
- [API 设计](docs/API_DESIGN.md)
- [数据库 Schema](docs/database-schema.sql)
- [部署指南](docs/DEPLOYMENT.md)
- [截图构想](docs/SCREENSHOTS.md)
## 学生 MVP 路线图
1. 后端身份验证和扫描 API
2. MySQL 持久化
3. ZAP 模拟扫描流程
4. React 登录/仪表盘/扫描历史
5. 真实的 ZAP daemon 集成
6. PDF 报告
7. Admin 仪表盘、图表和细节优化
标签:CISA项目, Java Spring Boot, OWASP ZAP, React, Syscalls, Web漏洞扫描, 域名枚举, 网络安全, 隐私保护