使用说明

项目简介

本项目是一个基于Model Context Protocol (MCP) 实现的服务器,它利用 Playwright 浏览器自动化库,为大型语言模型 (LLM) 客户端提供了一系列用于 Web 应用程序渗透测试的工具。通过这些工具,LLM 客户端可以执行诸如 XSS 和 SQL 注入漏洞检测、网页截图、页面元素交互、JavaScript 代码执行以及监控浏览器控制台日志等操作。

主要功能点

  • 自动化漏洞检测: 自动检测网页是否存在反射型 XSS 和 SQL 注入漏洞。
  • 网页内容捕获: 能够截取整个网页或特定元素的屏幕截图。
  • 全面的网页交互: 支持模拟用户在浏览器中的各种操作,包括页面导航、点击、表单填写等。
  • 实时日志监控: 监控并记录浏览器控制台输出的日志信息。
  • JavaScript 代码执行: 允许在浏览器上下文中执行 JavaScript 代码。

安装步骤

  1. 安装 Playwright 浏览器: 运行以下命令安装 Firefox 浏览器依赖 (Playwright 支持多浏览器,这里使用 Firefox):
    npx playwright install firefox
  2. 安装项目依赖: 在项目根目录下,根据你的包管理器运行以下命令安装项目依赖:
    yarn install
    或者
    npm install
  3. 构建项目: 运行以下命令构建项目,生成可执行的 JavaScript 文件:
    npm run build

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude)配合使用,您需要在客户端的配置文件中添加服务器配置信息。通常,配置信息以 JSON 格式存储。以下是一个示例配置,您需要将其添加到 Claude 的配置文件 (例如 'claude_desktop_config.json') 中。请注意,您需要根据实际的项目 'index.js' 文件路径调整 'args' 中的路径。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "-y",
        "/path/to/MCP-Server-Pentest/dist/index.js"  //  请替换为您的 'index.js' 文件的实际路径
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

配置参数说明:

  • '"server name"': 'playwright' (服务器名称,客户端根据此名称识别和调用服务器)
  • '"command"': 'npx' (启动服务器的命令,这里使用 npx 执行 node 包)
  • '"args"': 启动命令的参数,包括 '-y' (自动确认) 和 '/path/to/MCP-Server-Pentest/dist/index.js' (服务器入口文件路径,请务必替换为实际路径)
  • '"disabled"': 'false' (设置为 'false' 表示启用该服务器)
  • '"autoApprove"': '[]' (自动批准的工具列表,默认为空)

查找 'index.js' 实际路径的建议: 在完成安装步骤后,您可以在项目根目录下的 'dist' 文件夹中找到 'index.js' 文件。您需要将该文件的绝对路径填写到 'args' 配置项中。例如,如果您将仓库克隆到 '/Users/yourname/Documents/MCP-Server-Pentest',那么 'index.js' 的路径可能为 '/Users/yourname/Documents/MCP-Server-Pentest/dist/index.js'。

基本使用方法

  1. 启动 MCP 客户端: 确保您的 MCP 客户端(例如 Claude)已启动并正确加载了上述服务器配置。

  2. 调用工具: 在 MCP 客户端中,您可以指示 LLM 调用此 MCP 服务器提供的工具来执行相应的渗透测试任务。例如,您可以指示 LLM 执行以下操作:

    • 导航到指定 URL:

      {
        "tool_code": "browser_navigate",
        "tool_args": {
          "url": "https://example.com"
        }
      }
    • 截取网页截图:

      {
        "tool_code": "browser_screenshot",
        "tool_args": {
          "name": "example-screenshot",
          "fullPage": true
        }
      }
    • 检测 XSS 漏洞:

      {
        "tool_code": "broser_url_reflected_xss",
        "tool_args": {
          "url": "https://example.com/search?keyword=",
          "paramName": "keyword"
        }
      }
    • 检测 SQL 注入漏洞:

      {
        "tool_code": "browser_url_sql_injection",
        "tool_args": {
          "url": "https://example.com/product?id=",
          "paramName": "id"
        }
      }
    • 执行 JavaScript 代码:

      {
        "tool_code": "browser_evaluate",
        "tool_args": {
          "script": "document.title"
        }
      }

    客户端会将工具调用请求发送到 MCP 服务器,服务器执行相应的浏览器自动化操作,并将结果返回给客户端。您可以根据需要组合和利用这些工具,实现更复杂的 Web 应用渗透测试流程。

信息

分类

开发者工具