使用说明
项目简介
本项目提供了一个基于Model Context Protocol (MCP) 的服务器实现示例,该示例故意包含多种常见的安全漏洞,用于教育和演示目的。它展示了在MCP服务器中可能出现的如SQL注入、敏感数据暴露等问题,并提供了对应的客户端脚本(包括一个攻击客户端)来帮助理解和测试这些漏洞。请注意,此项目仅用于学习和测试,切勿在生产环境部署或使用。
主要功能点
作为MCP服务器,本项目提供了以下可通过MCP协议调用的工具(Tool):
- 'insert_record': 用于向内置的SQLite数据库中插入新的记录(名称和地址)。注意: 此工具存在严重的SQL注入漏洞。
- 'query_records': 用于检索并返回数据库中的所有记录。注意: 此工具没有实现任何访问控制。
- 'execute_sql': 直接执行客户端提供的任意SQL查询语句。注意: 此工具允许执行任意恶意的SQL命令,具有极高风险。
- 'get_env_variable': 根据客户端提供的环境变量名称,返回该环境变量的值。注意: 此工具可能泄露服务器环境中的敏感配置或密钥。
安装步骤
-
确保您的系统安装了 Python 3 环境。
-
克隆或下载本项目的代码到本地目录。
-
打开终端或命令提示符,进入到项目代码所在的目录。
-
运行以下命令,安装项目所需的 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客户端实现。
基本使用方法
在完成安装后,您可以按以下步骤运行服务器和客户端:
-
启动MCP服务器: 打开一个终端窗口,切换到项目目录,运行:
python vuln-mcp.py服务器将启动并等待Stdio连接。
-
使用正常客户端: 打开另一个终端窗口,切换到项目目录,运行:
python good-mcp-client.py vuln-mcp.py正常客户端会连接服务器,并提供交互式界面,您可以尝试插入记录('insert'命令)和查询记录('query'命令)来了解服务器的基本功能。输入 'quit' 退出。
-
运行攻击客户端: 打开第三个终端窗口,切换到项目目录,运行:
python attack-mcp-client.py vuln-mcp.py攻击客户端将自动连接服务器,并尝试执行预设的攻击payload,包括SQL注入测试、执行任意SQL查询以及尝试读取敏感环境变量,以演示服务器的漏洞。观察攻击客户端的输出,了解漏洞如何被利用。
信息
分类
开发者工具