该死的易受攻击模型上下文协议(DVMCP)
为教育目的而故意脆弱地实现模型上下文协议(MCP)。
概述
该死的脆弱模型上下文协议(DVMCP)是一个教育项目,旨在展示MCP实现中的安全漏洞。它包含10个难度越来越大的挑战,展示了不同类型的漏洞和攻击媒介。
该项目旨在让安全研究人员、开发人员和人工智能安全专业人员了解MCP实施中的潜在安全问题以及如何缓解这些问题。
什么是MCP?
这 模型上下文协议(MCP) 是一种标准化的协议,允许应用程序以结构化的方式为大型语言模型(LLM)提供上下文。它将提供上下文的关注点与实际的LLM交互分开,使应用程序能够向LLM公开资源、工具和提示。
推荐的MCP客户端
CLINE-VSCode扩展\ 请参阅此 连接到远程服务器-Cline 用于连接Cline和MCP服务器
快速开始
克隆存储库后,运行以下命令:
docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcp免责声明
它在Windows环境中不稳定。如果你不想使用Docker,那么请使用Linux环境。 我建议Docker运行LAB,我100%确定它在Docker环境中运行良好
危险分子
虽然MCP提供了许多好处,但它也引入了新的安全考虑。该项目展示了MCP实现中可能出现的各种漏洞,包括:
- 提示注入:通过恶意输入操纵LLM行为
- 工具中毒:在工具描述中隐藏恶意指令
- 权限过多:利用过于宽松的工具访问权限
- 拉臀攻击:利用工具定义突变
- 工具阴影:用恶意工具覆盖合法工具
- 间接快速注射:通过数据源注入指令
- 代币盗窃:利用不安全的令牌存储
- 恶意代码执行:通过易受攻击的工具执行任意代码
- 远程访问控制:获得未经授权的系统访问权限
- 多矢量攻击:结合多个漏洞
项目结构
damn-vulnerable-MCP-server/
├── README.md # Project overview
├── requirements.txt # Python dependencies
├── challenges/ # Challenge implementations
│ ├── easy/ # Easy difficulty challenges (1-3)
│ │ ├── challenge1/ # Basic Prompt Injection
│ │ ├── challenge2/ # Tool Poisoning
│ │ └── challenge3/ # Excessive Permission Scope
│ ├── medium/ # Medium difficulty challenges (4-7)
│ │ ├── challenge4/ # Rug Pull Attack
│ │ ├── challenge5/ # Tool Shadowing
│ │ ├── challenge6/ # Indirect Prompt Injection
│ │ └── challenge7/ # Token Theft
│ └── hard/ # Hard difficulty challenges (8-10)
│ ├── challenge8/ # Malicious Code Execution
│ ├── challenge9/ # Remote Access Control
│ └── challenge10/ # Multi-Vector Attack
├── docs/ # Documentation
│ ├── setup.md # Setup instructions
│ ├── challenges.md # Challenge descriptions
│ └── mcp_overview.md # MCP protocol overview
├── solutions/ # Solution guides
└── common/ # Shared code and utilities入门指南
请参阅 安装指南 有关如何安装和运行挑战的详细说明。
挑战
该项目包括三个难度级别的10个挑战:
轻松挑战
- 基本快速注射:利用未经消毒的用户输入操纵LLM行为
- 工具中毒:利用工具描述中的隐藏指令
- 权限范围过大:利用过于宽松的工具访问未经授权的资源
中等挑战
- 拉臀攻击:利用安装后改变其行为的工具
- 工具阴影:利用工具名称冲突覆盖合法工具
- 间接快速注射:通过数据源注入恶意指令
- 代币盗窃:从不安全的存储中提取身份验证令牌
艰难的挑战
- 恶意代码执行:通过易受攻击的工具执行任意代码
- 远程访问控制:通过命令注入远程访问系统
- 多矢量攻击:链接多个漏洞以进行复杂的攻击
请参阅 挑战指南 了解每个挑战的详细描述。
解决方案
提供解决方案指南用于教育目的。建议在咨询解决方案之前自行尝试挑战。
请参阅 解决方案指南 了解每个挑战的详细解决方案。
免责声明
本项目仅用于教育目的。这个项目中展示的漏洞永远不应该在生产系统中实施。在实施MCP服务器时,始终遵循安全最佳实践。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
作者
该项目由Harish Santanalakshmi Ganesan使用游标IDE和Manus AI创建。
