脆弱的模型上下文协议(DVMCP)
一个故意设计为存在漏洞的模型上下文协议(MCP)实现,用于教育目的。
概述
脆弱的模型上下文协议(DVMCP)是一个教育项目,旨在展示 MCP 实现中的安全漏洞。它包含 10 个难度递增的挑战,展示了不同类型的漏洞和攻击向量。
该项目面向安全研究人员、开发人员和 AI 安全专业人员,帮助他们了解 MCP 实现中潜在的安全问题以及如何缓解这些问题。
什么是 MCP?
模型上下文协议(MCP) 是一种标准化协议,允许应用程序以结构化的方式为大型语言模型(LLMs)提供上下文。它将提供上下文与实际 LLM 交互分离,使应用程序能够向 LLMs 公开资源、工具和提示。
推荐的 MCP 客户端
开始使用
免责声明
在 Windows 环境中可能不稳定,如果不使用 Docker,请使用 Linux 环境。我推荐使用 Docker 来运行 LAB,并且我 100% 确定它在 Docker 环境中运行良好。
安全风险
虽然 MCP 提供了许多好处,但它也引入了新的安全考虑。该项目展示了 MCP 实现中可能出现的各种漏洞,包括:
- 提示注入:通过恶意输入操纵 LLM 行为
- 工具污染:在工具描述中隐藏恶意指令
- 过度权限:利用过于宽松的工具访问未经授权的资源
- Rug Pull 攻击:利用工具定义突变
- 工具影子攻击:用恶意工具覆盖合法工具
- 间接提示注入:通过数据源注入指令
- 令牌窃取:从不安全的存储中提取认证令牌
- 恶意代码执行:通过漏洞工具执行任意代码
- 远程访问控制:获取未经授权的系统访问权限
- 多向量攻击:结合多个漏洞进行复杂攻击
项目结构
开始使用
查看 设置指南 获取详细的安装和运行挑战的说明。
挑战
该项目包含 10 个挑战,分为三个难度级别:
简单挑战
- 基本提示注入:利用未处理的用户输入操纵 LLM 行为
- 工具污染:利用工具描述中的隐藏指令
- 过度权限范围:利用过于宽松的工具访问未经授权的资源
中等挑战
- Rug Pull 攻击:利用安装后行为变化的工具
- 工具影子攻击:利用工具名称冲突覆盖合法工具
- 间接提示注入:通过数据源注入恶意指令
- 令牌窃取:从不安全的存储中提取认证令牌
高难度挑战
- 恶意代码执行:通过漏洞工具执行任意代码
- 远程访问控制:通过命令注入获取远程系统访问权限
- 多向量攻击:结合多个漏洞进行复杂攻击
查看 挑战指南 获取每个挑战的详细描述。
解决方案
提供解决方案指南用于教育目的。建议在查阅解决方案之前先自行尝试解决挑战。
查看 解决方案指南 获取每个挑战的详细解决方案。
免责声明
该项目仅用于教育目的。项目中展示的漏洞绝不应在生产系统中实现。在实现 MCP 服务器时,请始终遵循安全最佳实践。
许可证
该项目根据 MIT 许可证授权 - 详见 LICENSE 文件。
作者
该项目由 Harish Santhanalakshmi Ganesan 使用 Cursor IDE 和 Manus AI 创建。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/harishsg993010/damn-vulnerable-MCP-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!