huzaifahtahirofficial/web-pentest

GitHub: huzaifahtahirofficial/web-pentest

这是一个集成了 OWASP ZAP 和 SQLMap 等多引擎,并利用机器学习进行风险评估的 Web 漏洞扫描平台。

Stars: 0 | Forks: 0

# 🔒 Web 漏洞扫描器 一个全面的基于 Web 的安全扫描工具,用于分析网站的 OWASP Top 10 漏洞,并配备由机器学习驱动的仪表板。 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Python](https://img.shields.io/badge/python-3.11+-blue.svg) ![React](https://img.shields.io/badge/react-18+-blue.svg) ![FastAPI](https://img.shields.io/badge/fastapi-0.104+-green.svg) ## 📋 目录 - [功能](#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漏洞扫描, 前端展示, 发包工具, 后端扫描, 安全仪表盘, 安全防御评估, 搜索引擎查询, 无后门, 机器学习, 蓝队分析, 请求拦截, 逆向工具, 随机森林