关于 OWASP MCP Server
OWASP MCP Server 连接 OWASP ZAP,用于自动化 Web 安全评估。它支持实时监控、多种扫描类型和并发域名扫描,并提供 CLI 与 MCP 接口。
主要功能
- 01支持爬虫、主动和完整扫描
- 02实时显示扫描进度
- 03并发扫描多个域名
- 04通过 CLI 执行扫描
- 05集成 CI/CD
适用场景
- 01对网站执行被动或主动扫描
- 02实时监控扫描进度
- 03并发扫描多个域名
- 04将安全扫描加入 CI/CD 流水线
MCP 相关
它通过 WebSocket 向 MCP 客户端提供 OWASP ZAP 扫描控制与监控,包括实时评估更新。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
OWASP MCP 服务
基于 WebSocket 的任务控制协议(MCP)服务,可用于 OWASP ZAP 安全扫描,实现安全评估的实时控制和监控。
前提条件
- Python 3.8+
- OWASP ZAP 2.12.0+
- Java 运行时环境(JRE)8+
- Sudo/管理员权限(ZAP 需要)
为什么使用 MCP 服务?
| 功能 | 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 (as Administrator) "C:\Program Files\OWASP\Zed Attack Proxy\zap.bat" -daemon -port 8080 -
启动 MCP 服务:
python mcp_server.py -
使用 CLI:
# Quick spider scan (passive) python mcp_cli.py scan example.com # Full active scan (comprehensive) python mcp_cli.py fullscan example.com # Specific scan type with HTML report python mcp_cli.py scan --scan-type=active --output=html example.com # Multiple domains scan python mcp_cli.py scan domain1.com domain2.com # Scan from file 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 要求:
- OWASP ZAP 需要 sudo/管理员权限才能运行
- 启动 ZAP 时,系统会提示你输入密码
-
端口配置:
- ZAP 默认使用端口 8080
- MCP 服务使用端口 3000
- 启动前,请确保这些端口未被占用
-
常见问题:
- 如果看到“Address already in use”错误:
# 检查端口 8080 被什么程序占用 sudo lsof -i :8080 # 如有需要,终止该进程 sudo kill -9 <PID> - 如果 ZAP 启动失败,请尝试:
# 清除任何现有的 ZAP 进程 pkill -f zap
- 如果看到“Address already in use”错误:
扫描类型
MCP 服务支持多种扫描类型:
- 爬虫扫描(默认):爬取网站以发现内容,速度最快,但发现的问题较少
- 主动扫描:使用实际攻击进行安全测试,可发现更多漏洞
- 完整扫描:全面扫描(爬虫 + 主动),提供最彻底的结果
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。