Damn Vulnerable MCP Server:一个存在已知漏洞的 MCP 服务器
Navigation Menu(导航菜单)
harishsg993010 / **damn-vulnerable-MCP-server ** Public
- Notifications You must be signed in to change notification settings
- Fork 5
- Star 172
Damn Vulnerable MCP Server 172 stars 5 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings
Additional navigation options
harishsg993010/damn-vulnerable-MCP-server
main BranchesTags Go to file Code
Folders and files(文件夹和文件)
Name| Name| Last commit message| Last commit date ---|---|---|---
Latest commit
History
6 Commits challenges| challenges common| common docs| docs solutions| solutions Dockerfile| Dockerfile README.md| README.md init.py| init.py docker-setup.md| docker-setup.md requirements.txt| requirements.txt sse_server.py| sse_server.py start_sse_servers.sh| start_sse_servers.sh startup.sh| startup.sh supervisord.conf| supervisord.conf todo.md| todo.md update_servers.sh| update_servers.sh View all files
Repository files navigation(仓库文件导航)
Damn Vulnerable Model Context Protocol (DVMCP)
一个为了教育目的而故意设置漏洞的 Model Context Protocol (MCP) 实现。
Overview(概览)
Damn Vulnerable Model Context Protocol (DVMCP) 是一个教育项目,旨在演示 MCP 实现中的安全漏洞。它包含 10 个难度逐渐增加的挑战,展示了不同类型的漏洞和攻击媒介。
这个项目面向安全研究人员、开发人员和 AI 安全专业人员,用于了解 MCP 实现中潜在的安全问题以及如何缓解这些问题。
What is MCP?(什么是 MCP?)
Model Context Protocol (MCP) 是一个标准化的协议,允许应用程序以结构化的方式为 Large Language Models (LLMs) 提供上下文。它将提供上下文的关注点与实际的 LLM 交互分离开来,使应用程序能够向 LLM 公开资源、工具和提示。
Recommended MCP Clients(推荐的 MCP 客户端)
CLINE - VSCode Extension, 参考 https://docs.cline.bot/mcp-servers/connecting-to-a-remote-server,了解如何将 CLine 与 MCP 服务器连接。
getting started(开始)
一旦你克隆了代码仓库,运行以下命令:
docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcp
Security Risks(安全风险)
虽然 MCP 提供了许多好处,但也引入了新的安全考虑因素。本项目演示了 MCP 实现中可能发生的各种漏洞,包括:
- Prompt Injection:通过恶意输入操纵 LLM 行为
- Tool Poisoning:在工具描述中隐藏恶意指令
- Excessive Permissions:利用过度许可的工具访问权限
- Rug Pull Attacks:利用工具定义突变
- Tool Shadowing:用恶意工具覆盖合法的工具
- Indirect Prompt Injection:通过数据源注入指令
- Token Theft:利用不安全的令牌存储
- Malicious Code Execution:通过易受攻击的工具执行任意代码
- Remote Access Control:获得未经授权的系统访问权限
- Multi-Vector Attacks:结合多个漏洞
Project Structure(项目结构)
damn-vulnerable-mcs/
├── README.md # 项目概览
├── requirements.txt # Python 依赖
├── challenges/ # 挑战实现
│ ├── easy/ # 简单难度挑战 (1-3)
│ │ ├── challenge1/ # Basic Prompt Injection
│ │ ├── challenge2/ # Tool Poisoning
│ │ └── challenge3/ # Excessive Permission Scope
│ ├── medium/ # 中等难度挑战 (4-7)
│ │ ├── challenge4/ # Rug Pull Attack
│ │ ├── challenge5/ # Tool Shadowing
│ │ ├── challenge6/ # Indirect Prompt Injection
│ │ └── challenge7/ # Token Theft
│ └── hard/ # 困难难度挑战 (8-10)
│ ├── challenge8/ # Malicious Code Execution
│ ├── challenge9/ # Remote Access Control
│ └── challenge10/ # Multi-Vector Attack
├── docs/ # 文档
│ ├── setup.md # 安装说明
│ ├── challenges.md # 挑战描述
│ └── mcp_overview.md # MCP 协议概述
├── solutions/ # 解决方案指南
└── common/ # 共享代码和实用工具
Getting Started(开始)
请参阅 Setup Guide 了解如何安装和运行这些挑战的详细说明。
Challenges(挑战)
该项目包括三个难度级别的 10 个挑战:
Easy Challenges(简单挑战)
- Basic Prompt Injection:利用未经消毒的用户输入来操纵 LLM 行为
- Tool Poisoning:利用工具描述中隐藏的指令
- Excessive Permission Scope:利用过度许可的工具来访问未经授权的资源
Medium Challenges(中等挑战)
- Rug Pull Attack:利用在安装后改变其行为的工具
- Tool Shadowing:利用工具名称冲突来覆盖合法的工具
- Indirect Prompt Injection:通过数据源注入恶意指令
- Token Theft:从不安全的存储中提取身份验证令牌
Hard Challenges(困难挑战)
- Malicious Code Execution:通过易受攻击的工具执行任意代码
- Remote Access Control:通过命令注入获得对系统的远程访问权限
- Multi-Vector Attack:链接多个漏洞以进行复杂的攻击
请参阅 Challenges Guide 了解每个挑战的详细描述。
Solutions(解决方案)
提供解决方案指南是为了教育目的。建议您在查阅解决方案之前,先尝试自己完成这些挑战。
请参阅 Solutions Guide 了解每个挑战的详细解决方案。
Disclaimer(免责声明)
本项目仅用于教育目的。本项目中演示的漏洞绝不应在生产系统中实施。在实施 MCP 服务器时,请始终遵循安全最佳实践。
License(许可证)
本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
Author(作者)
本项目由 Harish Santhanalakshmi Ganesan 使用 cursor IDE 和 Manus AI 创建。
About
Damn Vulnerable MCP Server
Resources(资源)
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
Footer
GitHub © 2025 GitHub, Inc.
Footer navigation
You can’t perform that action at this time.