返回 MCP 目录
public公开dns本地运行

Owasp-Zap-MCP-Server-Demo

基于WebSocket的OWASP ZAP安全扫描控制协议服务器,实现实时控制和监控安全评估

article

README

🚀 OWASP MCP 服务器

OWASP MCP 服务器是一个基于 WebSocket 的任务控制协议(MCP)服务器,专为 OWASP ZAP 安全扫描设计。它支持实时控制和监控安全评估,能有效提升安全扫描的效率和精准度。

🚀 快速开始

安装 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

启动 MCP 服务器

python mcp_server.py

启动 ZAP

打开终端并运行以下命令以开始 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 3.8+
  • OWASP ZAP 2.12.0+
  • Java 运行环境(JRE)8+
  • Sudo 或管理员权限(ZAP 所需)

💻 使用示例

基本的扫描操作

蜘蛛扫描

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 来提升权限。
  • 日志记录:服务器和客户端都会输出日志以帮助调试。
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端