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安全, 后端开发, 无后门, 自动化评估, 蓝队分析, 逆向工具