这是一个为了教育目的而故意设计有漏洞的模型上下文协议(MCP)实现。
Damn Vulnerable Model Context Protocol (DVMCP) 是一个旨在展示MCP实现中安全漏洞的教育项目。它包含十个难度递增的挑战,展示了不同类型的漏洞和攻击向量。
该项目面向安全研究人员、开发者和AI安全专业人士,帮助他们了解MCP实现中的潜在安全问题以及如何缓解这些问题。
模型上下文协议(MCP)是一个标准化协议,允许应用程序以结构化的方式为大型语言模型(LLMs)提供上下文。它将提供上下文与实际LLM交互的责任分开,使应用程序能够向LLMs暴露资源、工具和提示。
CLINE - VSCode扩展 参考此链接连接CLine与MCP服务器:https://docs.cline.bot/mcp-servers/connecting-to-a-remote-server
一旦克隆了仓库,请运行以下命令:
docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcp
在Windows环境中可能不稳定,如果你不想使用Docker,请使用Linux环境。 我推荐使用Docker来运行实验室,并且我百分之百确定它在Docker环境中运行良好。
虽然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/ # 远程访问控制
│ └── challenge1_0/ # 多向量攻击
├── docs/ # 文档
│ ├── setup.md # 安装指南
│ ├── challenges.md # 挑战描述
│ └── mcp_overview.md # MCP协议概述
├── solutions/ # 解决方案指南
└── common/ # 共享代码和实用工具
请参阅安装指南,了解详细的安装和运行挑战的说明。
该项目包括三个难度级别的十个挑战:
请参阅挑战指南,了解每个挑战的详细描述。
为了教育目的,提供了解决方案指南。建议在查阅解决方案之前尝试自己完成挑战。
请参阅解决方案指南,了解每个挑战的详细解决方案。
本项目仅用于教育目的。本项目中展示的漏洞绝不能在生产系统中实施。在实现MCP服务器时,始终遵循最佳安全实践。
本项目根据MIT许可证发布 - 查看LICENSE文件以获取详细信息。
本项目由Harish Santhanalakshmi Ganesan使用Cursor IDE和Manus AI创建。