huzaifahtahirofficial/web-pentest
GitHub: huzaifahtahirofficial/web-pentest
这是一个集成了 OWASP ZAP 和 SQLMap 等多引擎,并利用机器学习进行风险评估的 Web 漏洞扫描平台。
Stars: 0 | Forks: 0
# 🔒 Web 漏洞扫描器
一个全面的基于 Web 的安全扫描工具,用于分析网站的 OWASP Top 10 漏洞,并配备由机器学习驱动的仪表板。




## 📋 目录
- [功能](#features)
- [架构](#architecture)
- [技术栈](#tech-stack)
- [安装](#installation)
- [使用方法](#usage)
- [API 文档](#api-documentation)
- [扫描器模块](#scanner-modules)
- [ML 风险预测](#ml-risk-prediction)
- [安全与授权](#security--authorization)
- [开发](#development)
- [部署](#deployment)
- [故障排除](#troubleshooting)
- [贡献](#contributing)
- [许可证](#license)
## ✨ 功能
- 🔍 **多扫描器集成**:OWASP ZAP、SQLMap 和自定义 OWASP 漏洞检查
- 📊 **交互式仪表板**:具有精美可视化效果的实时扫描结果
- 🤖 **ML 驱动的风险评估**:使用随机森林分类器进行预测性风险评分
- 🎯 **OWASP Top 10 覆盖**:全面映射到最新的 OWASP 类别
- 🔐 **身份验证与授权**:基于 JWT 的身份验证,附带域名所有权验证
- 📈 **丰富的可视化**:雷达图、严重性细分和风险评分仪表
- 🌐 **RESTful API**:提供 OpenAPI/Swagger 文档的简洁 API
- 🐳 **Docker 就绪**:使用 Docker Compose 完全容器化
- ⚡ **异步处理**:基于 Celery 的后台扫描执行
- 📝 **详细报告**:通俗易懂的解释和修复建议
## 🏗️ 架构
```
┌─────────────────────────────────────────┐
│ Frontend (React) │
│ URL Input → Dashboard │
└──────────────┬──────────────────────────┘
│
┌──────────────▼──────────────────────────┐
│ Backend API (FastAPI) │
│ Scan Orchestrator │
└──┬───────┬────────┬──────────┬──────────┘
│ │ │ │
ZAP SQLMap Custom ML
API API Checks Module
│
┌──────────────▼──────────────────────────┐
│ PostgreSQL + Redis + Celery │
└─────────────────────────────────────────┘
```
## 🛠️ 技术栈
| Layer | Technology |
|-------|-----------|
| **Frontend** | React 18 + TailwindCSS + Recharts |
| **Backend** | FastAPI (Python 3.11) |
| **Database** | SQLite |
| **Queue** | Celery + Redis |
| **ML** | Scikit-learn + NumPy + Pandas |
| **Scanners** | OWASP ZAP + SQLMap + Custom |
| **Auth** | JWT (python-jose) + Bcrypt |
| **Containers** | Docker + Docker Compose |
## 📦 安装
### 快速开始(推荐给客户)
最简单的部署方式是使用我们的自动化部署脚本:
```
# 克隆 repository
git clone
cd web-vulnerability-scanner
# 运行 deployment script
chmod +x deploy.sh
./deploy.sh
```
就这样!该脚本将引导您完成整个过程。
📖 **需要更多详情?** 请参阅 [DEPLOYMENT.md](DEPLOYMENT.md) 获取全面的部署指南。
### 使用 Docker 快速开始
1. **克隆仓库**
```
git clone
cd web-vulnerability-scanner
```
2. **配置环境**
```
cp .env.example .env
# 使用你的设置编辑 .env
```
3. **启动所有服务**
```
docker-compose up -d
```
4. **访问应用程序**
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Celery Flower: http://localhost:5555
### 手动安装
#### 后端设置
```
# 创建 virtual environment
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 安装 dependencies
pip install -r requirements.txt
# 设置 environment variables
cp ../.env.example .env
# 使用你的配置编辑 .env
# 初始化 database
python -c "from app.core.database import Base, engine; Base.metadata.create_all(bind=engine)"
# 训练 ML model (optional but recommended)
python -m app.ml.train_model
# 启动 backend server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
#### 前端设置
```
cd frontend
# 安装 dependencies
npm install
# 启动 development server
npm start
```
应用程序将在 http://localhost:3000 上可用
## 🚀 使用方法
### 1. 注册账户
导航至 http://localhost:3000/register 并创建一个账户。
### 2. 开始新扫描
1. 点击导航栏中的 "New Scan"
2. 输入目标 URL(必须是有效的 HTTP/HTTPS URL)
3. 选择扫描深度:
- **Light**:快速扫描(2-5 分钟)
- **Standard**:均衡扫描(5-15 分钟)
- **Deep**:彻底扫描(15-30 分钟)
4. 选择要运行的扫描器模块
5. (可选)为受保护的域提供授权令牌
6. 点击 "Start Scan"
### 3. 查看结果
结果显示在一个综合仪表板中,展示:
- **Risk Score**:ML 预测的风险等级(0-100)
- **Severity Breakdown**:按严重性级别划分的漏洞
- **OWASP Coverage**:显示 OWASP Top 10 覆盖率的雷达图
- **Alerts**:严重和高危漏洞
- **Recommendations**:通俗易懂的解释和修复建议
- **Detailed List**:包含技术细节的可展开漏洞卡片
## 📡 API 文档
交互式 API 文档可在 http://localhost:8000/docs (Swagger UI) 获取。
### 关键端点
#### 身份验证
```
POST /api/auth/register - Register new user
POST /api/auth/login - Login and get JWT token
GET /api/auth/me - Get current user info
```
#### 扫描
```
POST /api/scan/start - Start a new scan
GET /api/scan/status/{id} - Get scan status
GET /api/scan/results/{id} - Get full scan results
GET /api/scan/list - List user's scans
POST /api/scan/cancel/{id} - Cancel a running scan
```
#### 报告
```
GET /api/reports/{id} - Get scan report
GET /api/reports/summary/{id} - Get summary report
```
### API 使用示例
```
# 注册
curl -X POST http://localhost:8000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"username": "testuser", "email": "test@example.com", "password": "securepass123"}'
# 登录
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "testuser", "password": "securepass123"}'
# 启动 Scan (replace TOKEN with your JWT)
curl -X POST http://localhost:8000/api/scan/start \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "scan_depth": "standard"}'
```
## 🔬 扫描器模块
### 1. OWASP ZAP 扫描器
- Spider 爬取
- AJAX spidering
- 主动漏洞扫描
- 基于深度的可配置扫描强度
### 2. SQLMap 扫描器
- SQL 注入检测
- 基于表单的爬取
- 可配置的级别和风险
### 3. 自定义 OWASP 扫描器
全面检查以下内容:
- ✅ 缺失的安全头
- ✅ 反射型 XSS
- ✅ 目录列表
- ✅ 敏感文件暴露
- ✅ CSRF 令牌验证
- ✅ SSL/TLS 配置
- ✅ Cookie 安全
- ✅ SQL 注入(基础)
- ✅ 路径遍历
- ✅ SSRF(基础)
## 🤖 ML 风险预测
ML 模块使用随机森林分类器基于以下内容预测风险评分:
### 使用的特征
- 按严重性划分的漏洞数量(Critical, High, Medium, Low, Info)
- 特定漏洞类型的存在(SQLi, XSS, CSRF 等)
- OWASP Top 10 覆盖百分比
- 置信度指标(最大值和平均值)
### 风险等级
- **CRITICAL** (75-100):需要立即采取行动
- **HIGH** (50-74):重大漏洞
- **MEDIUM** (25-49):存在一些安全问题
- **LOW** (0-24):总体安全
### 训练模型
```
cd backend
python -m app.ml.train_model
```
这将生成合成训练数据并将模型保存到 `app/ml/model.pkl`。
## 🔐 安全与授权
### 身份验证
- 基于 JWT 的身份验证,使用 bcrypt 密码哈希
- 令牌过期(可配置,默认 60 分钟)
- 受保护的 API 端点
### 授权网关
- 扫描需要域名所有权验证
- 用于委托访问的授权令牌
- 所有扫描活动的审计日志
- 每个用户的速率限制(可配置)
### 法律保障
⚠️ **重要**:此工具**仅**可用于:
- 您拥有的系统
- 获得明确书面许可的系统
- 授权的测试环境
未经授权的扫描是非法的,并且违反计算机欺诈法律。
## 💻 开发
### 项目结构
```
web-vulnerability-scanner/
├── backend/
│ ├── app/
│ │ ├── api/ # API routes
│ │ │ ├── auth.py # Authentication endpoints
│ │ │ ├── scan.py # Scan management endpoints
│ │ │ └── reports.py # Report generation
│ │ ├── scanners/ # Scanner modules
│ │ │ ├── orchestrator.py # Scan orchestration
│ │ │ ├── zap_scanner.py # OWASP ZAP integration
│ │ │ ├── sqlmap_scanner.py # SQLMap integration
│ │ │ └── custom_scanner.py # Custom OWASP checks
│ │ ├── ml/ # ML module
│ │ │ ├── risk_predictor.py # Risk prediction
│ │ │ └── train_model.py # Model training
│ │ ├── models/ # Database models & schemas
│ │ │ ├── models.py # SQLAlchemy models
│ │ │ ├── schemas.py # Pydantic schemas
│ │ │ └── owasp.py # OWASP mapping
│ │ ├── core/ # Core utilities
│ │ │ ├── config.py # Application settings
│ │ │ ├── database.py # Database setup
│ │ │ └── security.py # Auth utilities
│ │ ├── main.py # FastAPI app
│ │ └── worker.py # Celery worker
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API & state management
│ │ └── App.jsx
│ ├── package.json
│ └── Dockerfile
├── docker-compose.yml
└── README.md
```
### 运行测试
```
# Backend tests (pytest)
cd backend
pytest
# Frontend tests (Jest)
cd frontend
npm test
```
### 代码风格
- Backend: Black + Ruff (Python)
- Frontend: ESLint + Prettier (JavaScript/React)
## 🚢 部署
### 简易部署选项
我们已为您尽可能简化了部署流程:
#### 选项 1:自动化部署(最简单)
```
./deploy.sh
```
此交互式脚本将:
- 检查先决条件(Docker, Docker Compose)
- 引导您完成配置
- 构建并部署所有服务
- 创建用于持续维护的管理脚本
#### 选项 2:手动 Docker 部署
```
cp .env.example .env
docker-compose up -d
```
#### 选项 3:生产环境部署
对于具有健康检查和资源限制的生产环境:
```
cp .env.example .env
# 使用生产设置编辑 .env
docker-compose -f docker-compose.prod.yml up -d
```
### 管理与维护
部署后,使用管理脚本:
```
./manage.sh
```
这提供了一个交互式菜单,用于:
- 启动/停止服务
- 查看日志
- 备份/恢复数据
- 更新应用程序
- 健康检查
### SSL/HTTPS 设置
对于具有域名的生产环境部署:
```
sudo ./setup-ssl.sh
```
这将:
- 安装 Let's Encrypt Certbot
- 配置 nginx 反向代理
- 获取并安装 SSL 证书
- 设置自动续期
### 备份策略
定期备份至关重要:
```
# 交互式 backup menu
./backup.sh
# 快速 backup
./backup.sh backup
# 从 backup 恢复
./backup.sh restore
```
### 生产环境检查清单
- [ ] 将 `JWT_SECRET_KEY` 更改为强随机值
- [ ] 设置 `DEBUG=False`
- [ ] 设置 `REQUIRE_AUTHORIZATION=True`
- [ ] 配置 SSL 证书
- [ ] 设置自动备份
- [ ] 配置防火墙规则
- [ ] 检查 CORS 设置
- [ ] 设置监控
📖 **完整部署指南:** 请参阅 [DEPLOYMENT.md](DEPLOYMENT.md) 了解详细说明、故障排除和生产环境最佳实践。
## 🔌 外部工具集成
此扫描器集成了多个安全工具。以下是开箱即用的功能:
### ✅ 立即可用(无需设置)
- **httpx** - 用于所有扫描器的异步 HTTP 客户端
- **BeautifulSoup4** - HTML 解析和爬取
- **Redis** - Celery 任务的消息代理
- **Celery** - 后台扫描执行
- **7 个自定义扫描器** - Spider, VulnScanner, AdvancedChecks, HiddenParams, CMS, API, DNS/TLS
- **scikit-learn** - ML 驱动的风险预测
### ⚠️ 可选增强功能(需要设置)
- **OWASP ZAP** - 需要单独的 ZAP 实例(增加 AJAX spidering、更深入的扫描)
- **SQLMap** - 需要主机安装(增加高级 SQLi 检测)
📖 **完整详情:** 请参阅 [TOOL_INTEGRATIONS.md](TOOL_INTEGRATIONS.md) 了解哪些功能可用以及哪些需要设置的完整细分。
## 🔧 故障排除
### 常见问题
**1. ZAP 扫描器不工作**
- 确保 OWASP ZAP 正在运行且可访问
- 在 .env 中验证 `ZAP_API_KEY` 和 `ZAP_URL`
- 检查 ZAP API 是否已启用:`ZAP → Tools → Options → API`
**2. 未找到 SQLMap**
- 安装 SQLMap:`apt install sqlmap` 或从 https://github.com/sqlmapproject/sqlmap 下载
- 或者使用包含所有依赖项的 Docker 设置
**3. 数据库连接错误**
- 默认使用 SQLite - 不需要单独的数据库服务器
- 数据库文件存储在 `backend/data/scanner.db`(或本地 `./scanner.db`)
- 确保 `data` 目录具有写入权限
**4. Celery Worker 未处理任务**
- 检查 Redis 是否正在运行
- 验证 `CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND`
- 重启 Celery worker:`docker-compose restart celery-worker`
**5. 未找到 ML 模型**
- 训练模型:`python -m app.ml.train_model`
- 如果缺少模型,系统将回退到基于规则的评分
### 查看日志
```
# Docker logs
docker-compose logs -f backend
docker-compose logs -f frontend
docker-compose logs -f celery-worker
# 查看所有 logs
docker-compose logs -f
```
## 🤝 贡献
欢迎贡献!请遵循以下步骤:
1. Fork 仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开 Pull Request
### 开发指南
- 遵循现有的代码风格和约定
- 为新功能编写测试
- 根据需要更新文档
- 使用约定式提交信息
## 📄 许可证
本项目在 MIT 许可证下授权 - 详见 LICENSE 文件。
## ⚠️ 免责声明
此工具专为**授权安全测试**而设计。
- ✅ 仅扫描您拥有或获得明确测试许可的系统
- ✅ 遵循负责任的披露实践
- ✅ 遵守所有适用的法律法规
- ❌ 不要用于未经授权的渗透测试
- ❌ 不要用于恶意目的
作者不对因滥用此工具造成的任何损害或破坏负责。
## 📞 支持
- 📧 Email: huzaifahtahir38@gmail.com
- 🐛 Issues: https://github.com/your-repo/issues
- 📖 Documentation: https://your-docs-site.com
**Built with ❤️ for the security community**
标签:Apex, API文档, AV绕过, Celery, Docker, FastAPI, JWT认证, OWASP Top 10, OWASP ZAP, Python, React, SQLMap集成, SQL注入检测, Syscalls, Web安全, Web漏洞扫描, 前端展示, 发包工具, 后端扫描, 安全仪表盘, 安全防御评估, 搜索引擎查询, 无后门, 机器学习, 蓝队分析, 请求拦截, 逆向工具, 随机森林