本项目展示了一个易受攻击的MCP服务器及多个客户端,包含概念验证攻击客户端和正常客户端。其主要用于教育,旨在揭示MCP服务器潜在的安全漏洞。
pip install -r requirements.txt
在一个终端中:
python good-mcp-client.py vuln-mcp.py
根据提示插入/查询记录进行交互式操作。
在另一个终端中:
python attack-mcp-client.py vuln-mcp.py
这将自动执行以下操作:
vuln-mcp.py
:易受攻击的MCP服务器,暴露了不安全的工具。good-mcp-client.py
:正常交互的标准客户端(插入/查询记录)。attack-mcp-client.py
:自动化攻击客户端,演示对服务器漏洞的利用。requirements.txt
:项目所需的Python依赖项。攻击客户端会显示哪些payload成功或失败,并打印出数据库内容和环境变量值(如果可访问)。
execute_sql
工具允许攻击者运行任何SQL命令,包括数据盗窃或破坏。get_env_variable
工具允许攻击者读取机密信息和配置值。为了保护实际的MCP服务器,应该:
cursor.execute("INSERT INTO records (name, address) VALUES (?, ?)", (name, address))
execute_sql
和get_env_variable
等工具。文档中未提及相关内容,暂不展示。
该项目仅供教育用途。请勿在生产环境中部署或使用类似配置,否则可能会导致严重的安全风险。