使用说明

项目简介

本项目提供了一个基于Model Context Protocol (MCP) 的服务器实现示例,该示例故意包含多种常见的安全漏洞,用于教育和演示目的。它展示了在MCP服务器中可能出现的如SQL注入、敏感数据暴露等问题,并提供了对应的客户端脚本(包括一个攻击客户端)来帮助理解和测试这些漏洞。请注意,此项目仅用于学习和测试,切勿在生产环境部署或使用。

主要功能点

作为MCP服务器,本项目提供了以下可通过MCP协议调用的工具(Tool):

  • 'insert_record': 用于向内置的SQLite数据库中插入新的记录(名称和地址)。注意: 此工具存在严重的SQL注入漏洞。
  • 'query_records': 用于检索并返回数据库中的所有记录。注意: 此工具没有实现任何访问控制。
  • 'execute_sql': 直接执行客户端提供的任意SQL查询语句。注意: 此工具允许执行任意恶意的SQL命令,具有极高风险。
  • 'get_env_variable': 根据客户端提供的环境变量名称,返回该环境变量的值。注意: 此工具可能泄露服务器环境中的敏感配置或密钥。

安装步骤

  1. 确保您的系统安装了 Python 3 环境。

  2. 克隆或下载本项目的代码到本地目录。

  3. 打开终端或命令提示符,进入到项目代码所在的目录。

  4. 运行以下命令,安装项目所需的 Python 依赖库(主要包括 'mcp' 库):

    pip install -r requirements.txt

服务器配置

本项目中的MCP服务器通过 Stdio(标准输入/标准输出)作为传输协议运行。当使用MCP客户端连接此服务器时,您需要告知客户端如何启动该服务器进程。

  • 服务器名称: "Vulnerable MCP Server"
  • 传输协议: Stdio
  • 启动命令 ('command'): 'python'
  • 启动参数 ('args'): '["vuln-mcp.py"]'

MCP客户端(如支持MCP的LLM客户端或开发库)通常会有一个配置结构,允许您指定服务器的名称、传输方式以及对应的连接细节。例如,在配置 Stdio 传输时,您会指定执行服务器脚本的命令 ('python') 和脚本文件路径 ('vuln-mcp.py')。具体的配置格式取决于您使用的MCP客户端实现。

基本使用方法

在完成安装后,您可以按以下步骤运行服务器和客户端:

  1. 启动MCP服务器: 打开一个终端窗口,切换到项目目录,运行:

    python vuln-mcp.py

    服务器将启动并等待Stdio连接。

  2. 使用正常客户端: 打开另一个终端窗口,切换到项目目录,运行:

    python good-mcp-client.py vuln-mcp.py

    正常客户端会连接服务器,并提供交互式界面,您可以尝试插入记录('insert'命令)和查询记录('query'命令)来了解服务器的基本功能。输入 'quit' 退出。

  3. 运行攻击客户端: 打开第三个终端窗口,切换到项目目录,运行:

    python attack-mcp-client.py vuln-mcp.py

    攻击客户端将自动连接服务器,并尝试执行预设的攻击payload,包括SQL注入测试、执行任意SQL查询以及尝试读取敏感环境变量,以演示服务器的漏洞。观察攻击客户端的输出,了解漏洞如何被利用。

信息

分类

开发者工具