返回市场
owaspzapmcp服务器演示版

owaspzapmcp服务器演示版

作者:shadsidd11 星标更新:2025-04-07

项目介绍

OWASP MCP 服务器

基于WebSocket的使命控制协议(MCP)服务器,用于OWASP ZAP安全扫描,实现对安全评估的实时控制和监控。

预备条件

  • Python 3.8+
  • OWASP ZAP 2.12.0+
  • Java运行环境(JRE)8+
  • Sudo/管理员权限(ZAP所需)

为什么选择MCP服务器?

功能MCP服务器ZAP UIZAP API
自动化✅ 完整❌ 有限✅ 基本
实时更新✅ WebSocket✅ 可视化❌ 轮询
CI/CD集成✅ 内置❌ 手动✅ 复杂
批量处理✅ 是❌ 否✅ 有限
学习曲线🟡 中等🟢 简单🔴 困难
进度跟踪✅ 实时✅ 可视化❌ 手动
多个域✅ 并发❌ 顺序🟡 有限
错误处理✅ 健全✅ 基本❌ 手动

核心组件

  • mcp_server.py - 驱动一切的引擎。首先启动此程序 - 它是连接到OWASP ZAP的安全扫描核心力量。
  • mcp_client.py - 操作背后的智慧。其他组件用来与服务器通信的强大SDK(您不会直接使用它)。
  • mcp_cli.py - 您进行扫描的首选命令行工具。将其视为您的瑞士军刀 - 使用简单但功能强大。
  • test_client.py - 一个学习工具,展示如何操作。非常适合理解所有内容的工作原理或测试您的设置。

快速开始

  1. 安装OWASP ZAP: 从https://www.zaproxy.org/download/下载。

  2. 设置项目

    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
    
  3. 启动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
    
  4. 启动MCP服务器

    python mcp_server.py
    
  5. 使用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 - 专用安全规则

重要说明

  1. Sudo需求

    • OWASP ZAP需要sudo/管理员权限才能运行
    • 启动ZAP时会提示您输入密码
  2. 端口配置

    • ZAP默认使用8080端口
    • MCP服务器使用3000端口
    • 在启动前确保这些端口未被占用
  3. 常见问题

    • 如果看到“地址已被使用”错误:
      # 查看什么进程在使用8080端口
      sudo lsof -i :8080
      # 如需终止进程
      sudo kill -9 <PID>
      
    • 如果ZAP无法启动,请尝试:
      # 清除任何现有的ZAP进程
      pkill -f zap
      

扫描类型

MCP服务器支持多种扫描类型:

  • 蜘蛛扫描(默认):爬取网站以发现内容,速度最快但找到的问题较少
  • 主动扫描:通过实际攻击执行安全测试,发现更多漏洞
  • 全面扫描:综合扫描(蜘蛛+主动),提供最详尽的结果