Damn Vulnerable Model Context Protocol(DVMCP)是一个专门为教育目的设计的项目,故意实现了易受攻击的模型上下文协议(MCP)。它包含10个难度递增的挑战,能帮助研究人员、开发人员和AI安全专业人员了解MCP实现中的安全漏洞及防护方法。
在克隆仓库后,请运行以下命令:
docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcp
⚠️ 重要提示
在Windows环境下如果不使用Docker可能会不稳定。如果您不想使用Docker,请使用Linux环境。强烈推荐使用Docker来运行此实验,并且可以保证它在Docker环境中良好运行。
模型上下文协议(Model Context Protocol,简称MCP)是一个标准化协议,允许应用程序以一种结构化的方式为大型语言模型(LLMs)提供上下文信息。它将提供上下文与实际的LLM交互分离开来,使应用程序能够向LLM暴露资源、工具和提示。
尽管MCP提供了许多好处,但它也引入了新的安全考量。该项目展示了MCP实现中可能出现的各种安全漏洞,包括:
damn-vulnerable-mcs/
├── README.md # 项目概述
├── requirements.txt # Python依赖项
├── challenges/ # 挑战实现
│ ├── easy/ # 简单难度挑战(1 - 3)
│ │ ├── challenge1/ # 基本提示注入
│ │ ├── challenge2/ # 中级提示注入
│ │ └── challenge3/ # 高级提示注入
│ ├── medium/ # 中等难度挑战(4 - 7)
│ │ ├── challenge4/ # 拉地毯攻击基础
│ │ ├── challenge5/ # 工具中毒入门
│ │ ├── challenge6/ # 间接提示注入
│ │ ├── challenge7/ # 复杂权限绕过
│ └── hard/ # 高级难度挑战(8 - 10)
│ ├── challenge8/ # 恶意代码执行
│ ├── challenge9/ # 令牌窃取与持久化
│ └── challenge10/ # 综合多向量攻击
├── solutions/ # 解决方案
│ └── README.md # 各挑战的解决方案说明
└── LICENSE # 许可证文件
为了教育目的,提供了各挑战的解决方案指南。建议在查看解决方案之前先尝试自行解决这些挑战。 请参考 solutions/README.md 了解每个挑战的详细解决方案。
此项目仅用于教育用途。本项目中演示的所有漏洞应在生产系统中严格避免。实施MCP服务器时,请始终遵循安全最佳实践。
此项目在MIT许可证下发布,具体请查看 LICENSE 文件。
该项目由Harish Santhanalakshmi Ganesan使用Cursor IDE和Manus AI创建。