OWASP MCP 服务器是一个基于 WebSocket 的任务控制协议(MCP)服务器,专为 OWASP ZAP 安全扫描设计。它支持实时控制和监控安全评估,能有效提升安全扫描的效率和精准度。
可从以下地址下载 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
python3 -m venv venv
source venv/bin/activate # 在 Windows 上使用 `venv\Scripts\activate`
pip install -r requirements.txt
python mcp_server.py
打开终端并运行以下命令以开始 ZAP 的代理:
zap-baseline.py -t http://目标URL:端口
例如,执行蜘蛛扫描:
python mcp_client.py --scan-type spider --target http://目标URL:端口
| 特性 | MCP 服务器 | ZAP UI | ZAP API |
|---|---|---|---|
| 自动化 | ✅ 完全支持 | ❌ 有限 | ✅ 基本 |
| 实时更新 | ✅ WebSocket | ✅ 可视化 | ❌ 拉取式 |
| CI/CD 集成 | ✅ 原生支持 | ❌ 手动 | ✅ 复杂 |
| 批处理 | ✅ 支持 | ❌ 不支持 | ✅ 有限 |
| 学习曲线 | 🟡 中等 | 🟢 简单 | 🔴 困难 |
| 进度跟踪 | ✅ 实时 | ✅ 可视化 | ❌ 手动 |
| 多个域名 | ✅ 并发支持 | ❌ 串行 | 🟡 有限 |
| 错误处理 | ✅ 健壮 | ✅ 基本 | ❌ 手动 |
python mcp_client.py --scan-type spider --target http://目标URL:端口
python mcp_client.py --scan-type active --target http://目标URL:端口
python mcp_client.py --scan-type full --target http://目标URL:端口
mcp_server.py - 动力源泉。首先启动它,它是连接到 OWASP ZAP 的核心扫描引擎。mcp_client.py - 运行 brains。一个强大的 SDK,其他组件用于与服务器通信(你不会直接使用此文件)。mcp_cli.py - 你的瑞士军刀式命令行工具。简单易用且功能强大。test_client.py - 学习和测试的理想工具。项目中包含以下示例文件:
mcp_server.py - MCP 服务器的核心实现。mcp_client.py - 提供命令行接口以控制扫描。test_client.py - 测试连接性和基本功能。MCP 服务器支持多种扫描类型:
⚠️ 重要提示
- 端口冲突:确保目标 URL 的端口未被其他应用程序占用。
- 权限问题:在某些系统上,你可能需要使用 sudo 来提升权限。
- 日志记录:服务器和客户端都会输出日志以帮助调试。