基于WebSocket的使命控制协议(MCP)服务器,用于OWASP ZAP安全扫描,实现对安全评估的实时控制和监控。
| 功能 | MCP服务器 | ZAP UI | ZAP API |
|---|---|---|---|
| 自动化 | ✅ 完整 | ❌ 有限 | ✅ 基本 |
| 实时更新 | ✅ WebSocket | ✅ 可视化 | ❌ 轮询 |
| CI/CD集成 | ✅ 内置 | ❌ 手动 | ✅ 复杂 |
| 批量处理 | ✅ 是 | ❌ 否 | ✅ 有限 |
| 学习曲线 | 🟡 中等 | 🟢 简单 | 🔴 困难 |
| 进度跟踪 | ✅ 实时 | ✅ 可视化 | ❌ 手动 |
| 多个域 | ✅ 并发 | ❌ 顺序 | 🟡 有限 |
| 错误处理 | ✅ 健全 | ✅ 基本 | ❌ 手动 |
mcp_server.py - 驱动一切的引擎。首先启动此程序 - 它是连接到OWASP ZAP的安全扫描核心力量。mcp_client.py - 操作背后的智慧。其他组件用来与服务器通信的强大SDK(您不会直接使用它)。mcp_cli.py - 您进行扫描的首选命令行工具。将其视为您的瑞士军刀 - 使用简单但功能强大。test_client.py - 一个学习工具,展示如何操作。非常适合理解所有内容的工作原理或测试您的设置。安装OWASP ZAP: 从https://www.zaproxy.org/download/下载。
设置项目:
git clone https://github.com/shadsidd/Owasp-Zap-MCP-Server-Demo.git
cd Owasp-Zap-MCP-Server-Demo
python -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\activate
pip install -r requirements.txt
启动ZAP(需要sudo/管理员权限):
# macOS/Linux
sudo /Applications/ZAP.app/Contents/Java/zap.sh -daemon -port 8080
# Windows(以管理员身份)
"C:\Program Files\OWASP\Zed Attack Proxy\zap.bat" -daemon -port 8080
启动MCP服务器:
python mcp_server.py
使用CLI:
# 快速蜘蛛扫描(被动)
python mcp_cli.py scan example.com
# 全面主动扫描(综合)
python mcp_cli.py fullscan example.com
# 特定扫描类型并生成HTML报告
python mcp_cli.py scan --scan-type=active --output=html example.com
# 多个域名扫描
python mcp_cli.py scan domain1.com domain2.com
# 从文件扫描
python mcp_cli.py scan -f domains.txt
examples/目录包含演示关键特性的脚本:
basic_scan.py - 核心扫描及错误处理authenticated_scan.py - 表单和其他认证方法scan_domains.py - 并发扫描多个域名custom_scan_policy.py - 自定义规则和阈值ci_cd_integration.py - CI/CD流水线集成real_time_monitor.py - 实时进度和警报监控team_notifications.py - 邮件、Slack和Teams通知custom_rules.py - 专用安全规则Sudo需求:
端口配置:
常见问题:
# 查看什么进程在使用8080端口
sudo lsof -i :8080
# 如需终止进程
sudo kill -9 <PID>
# 清除任何现有的ZAP进程
pkill -f zap
MCP服务器支持多种扫描类型: