sateeshkonjeti2001-lgtm/owasp-zap

GitHub: sateeshkonjeti2001-lgtm/owasp-zap

基于 OWASP ZAP 与 Flask 构建的 Web 应用安全测试平台,提供漏洞扫描、风险评估、修复指导和前后对比的完整闭环工作流。

Stars: 0 | Forks: 0

# OWASP ZAP 安全仪表板 一个专业的**Web 应用漏洞评估与渗透测试 (VAPT)** 平台,使用 Python 和 Flask 构建,由 OWASP ZAP 2.17.0 提供支持。 ## 概述 该平台通过直观的仪表板自动化 Web 应用安全测试。它不仅能发现漏洞,还能解释**如何修复它们**,提供**业务影响分析**,并通过前后对比跟踪**安全改进**情况。 ## 功能 ### 扫描引擎 - **Spider 扫描** — 爬取所有 URL 并映射完整的攻击面 - **被动扫描** — 监控 HTTP 流量而不发送攻击 payload - **主动扫描** — 使用攻击 payload 主动探测目标 - **Fuzzer** — 发送构造的 payload 以测试 SQLi、XSS 和路径遍历 - **认证测试** — 测试有效、无效、空和注入凭证 - **API endpoint 扫描器** — 发现并测试所有暴露的 API endpoint ### 风险评估 - 每个目标的总体风险评分 (0–100) - 每个漏洞的 CVSS 评分 - 针对每个发现项提供真实攻击场景说明 - 业务影响分析(机密性、完整性、可用性) - 受影响资产识别 - 修复紧急性分类(24小时 / 7天 / 30天) ### 修复工作流 - 针对每个漏洞的分步修复指南 - 根本原因解释 - 开箱即用的修复代码片段 - 修复验证命令 - OWASP 和 MDN 参考资料 - 标记为已修复的跟踪及备注 ### 修复前后对比 - 扫描历史记录存储在 SQLite 数据库中 - 初始扫描与重新扫描的并排比较 - 安全改进指标 - 修复验证后重新扫描 ### 报告 - HTML 报告导出 - JSON 报告导出 - 跨会话的扫描历史持久化存储 ## 技术栈 | 层级 | 技术 | |---|---| | 后端 | Python 3.13, Flask | | 扫描引擎 | OWASP ZAP 2.17.0 | | 数据库 | SQLite | | 前端 | HTML5, CSS3, Jinja2 | | ZAP 集成 | python-owasp-zap-v2.4 | ## 项目结构 ``` OWASP-ZAP-PROJECT/ ├── app.py # Flask application + all routes ├── zap_helper.py # ZAP API integration layer ├── target_app.py # Intentionally vulnerable test app ├── remediation_db.py # Vulnerability fix guide database ├── risk_assessment.py # Risk scoring and business impact data ├── scan_history.db # SQLite scan history (auto-created) ├── requirements.txt ├── templates/ │ ├── index.html # Main dashboard (2-column layout) │ ├── remediation.html # Remediation guide page │ ├── risk_assessment.html # Risk assessment page │ └── compare.html # Before vs after comparison ├── static/ │ └── style.css └── reports/ # Generated scan reports ``` ## 设置与安装 ### 前置条件 - Python 3.10+ - 已安装 OWASP ZAP 2.17.0 - Git ### 步骤 1 — 克隆仓库 ``` git clone https://github.com/sateeshkonjeti2001-lgtm/owasp-zap.git cd owasp-zap ``` ### 步骤 2 — 创建虚拟环境 ``` python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate ``` ### 步骤 3 — 安装依赖项 ``` pip install -r requirements.txt ``` ### 步骤 4 — 启动 OWASP ZAP 打开 OWASP ZAP 应用程序。确保其正在运行,并且在 `localhost:8080` 上启用了 API。 ### 步骤 5 — 启动漏洞目标应用 ``` python target_app.py # 运行于 http://127.0.0.1:5001 ``` ### 步骤 6 — 启动仪表板 ``` python app.py # 运行于 http://127.0.0.1:5000 ``` ## 使用工作流 ``` 1. Open http://127.0.0.1:5000 2. Click "Run Spider" → Maps all URLs 3. Click "Run Passive Scan" → Monitors traffic 4. Click "Run Active Scan" → Finds vulnerabilities (2-3 min) 5. Click "View Risk Assessment" → See business impact per vuln 6. Click "View Remediation Guide" → Get step-by-step fixes 7. Apply fixes to target_app.py 8. Click "Re-scan After Fix" → Verify fixes worked 9. Click "View Comparison" → Before vs After results 10. Download Report → Export HTML/JSON ``` ## 仪表板页面 | 页面 | URL | 描述 | |---|---|---| | 主仪表板 | `/` | 双列控制中心 | | 风险评估 | `/risk-assessment` | CVSS 评分 + 业务影响 | | 修复指南 | `/remediation` | 分步修复指南 | | 修复前后对比 | `/compare` | 安全改进对比 | | 重新扫描 | `/rescan` | 修复后运行全新扫描 | | 报告 | `/report` | 下载 HTML 报告 | ## 目标应用漏洞 包含的 `target_app.py` 是一个故意包含漏洞的 Flask 应用程序,包含: - `/search` endpoint 中的反射型 XSS - `/login` 中的 SQL 注入 - 缺失安全标头 (X-Frame-Options, CSP, X-Content-Type-Options) - 无 CSRF 保护 - 仅限 HTTP(无 HTTPS) - 服务器版本泄露 ## 安全免责声明 ## 作者 **Naga Venkata Sateesh Konjeti** - GitHub: [@sateeshkonjeti2001-lgtm](https://github.com/sateeshkonjeti2001-lgtm) ## 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。
标签:CISA项目, Flask, OWASP ZAP, Python, Web安全, 后端开发, 无后门, 自动化评估, 蓝队分析, 逆向工具