Token导航 LogoToken导航TokenDH.com
dv MCP labs logo
安全风控stdio官方级别未说明来源级核验

dv MCP labs

MCP Server

Damn Vulnerable Model Context Protocol (DVMCP)是一个专为教育目的设计的故意存在漏洞的MCP实现,用于展示安全漏洞和攻击向量。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
安全PythonClineCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

emulateai-dev

提供方

emulateai-dev

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 9001-9010:9001-9010 dvmcp

详细介绍

该死的易受攻击模型上下文协议(DVMCP)

为教育目的而故意脆弱地实现模型上下文协议(MCP)。

概述

该死的脆弱模型上下文协议(DVMCP)是一个教育项目,旨在展示MCP实现中的安全漏洞。它包含10个难度越来越大的挑战,展示了不同类型的漏洞和攻击媒介。

该项目旨在让安全研究人员、开发人员和人工智能安全专业人员了解MCP实施中的潜在安全问题以及如何缓解这些问题。

什么是MCP?

模型上下文协议(MCP) 是一种标准化的协议,允许应用程序以结构化的方式为大型语言模型(LLM)提供上下文。它将提供上下文的关注点与实际的LLM交互分开,使应用程序能够向LLM公开资源、工具和提示。

推荐的MCP客户端

Olama MCP客户 (含)--使用以下方式运行:

./venv/bin/python fixes/ollama_mcp_client.py

您还可以将任何与SSE兼容的MCP客户端(例如Cursor、Cline)直接连接到下表中列出的SSE端点。

有关Cline(VSCode扩展),请参阅 连接到远程服务器-Cline 用于连接说明。

快速开始

选项1-Linux(推荐)

git clone 
cd damn-vulnerable-MCP-server
chmod +x install.sh && ./install.sh

脚本将:

  • 安装Python 3.10+并创建虚拟环境
  • 安装所有Python依赖项
  • 安装Ollama并拉取您选择的模型
  • 设置挑战临时目录
  • 打印运行说明

安装后,打开 两个终端:

# Terminal 1 — start all challenge servers
./start_sse_servers.sh

# Terminal 2 — start the MCP client
./venv/bin/python fixes/ollama_mcp_client.py

选项2-Docker

docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcp
注: Docker模式不包括Ollama。你仍然需要跑步 ./venv/bin/python fixes/ollama_mcp_client.py 分别指向你的Ollama实例。

______________________________________________________________________

挑战

所有挑战服务器都在以下位置公开一个SSE端点 http://localhost: /sse.

🟢 简单

#挑战端口SSE端点OWASP LLM风险提示
1基本快速注射9001http://localhost:9001/sseMCP06 –通过上下文有效载荷快速注入echo 该工具通过LLM直接反映您的输入。尝试制作一条覆盖系统提示的消息,并强制模型显示信息或改变其行为。
2工具中毒9002http://localhost:9002/sseMCP03 –工具中毒仔细阅读工具描述——它们可能包含用户看不见但模型可见的隐藏指令。你能让LLM按照工具描述中嵌入的指令行事吗?
3权限范围过大9003http://localhost:9003/sseMCP02 –通过作用域爬行进行权限升级文件读取器工具应该仅限于公共目录。探索路径遍历技术,以访问预期范围之外的文件,特别是 /private 目录。

🟡 中等

#挑战端口SSE端点OWASP LLM风险提示
4拉臀攻击9004http://localhost:9004/sseMCP03 工具中毒 get_weather 该工具在前几个调用中表现正常。重复几次请求,观察工具描述是如何变化的,以及模型被指示做什么
5工具阴影9005http://localhost:9005/sseMCP02 –通过作用域爬行进行特权升级与合法工具同名注册的恶意工具可以悄无声息地覆盖它。调查模型实际调用的工具版本,看看是否可以触发影子工具的隐藏行为。
6间接快速注射9006http://localhost:9006/sseMCP06 –通过上下文有效载荷进行提示注入文档处理工具读取外部内容并将其传递给模型。尝试在文档文本中嵌入提示注入有效负载——你能让LLM执行隐藏在它处理的数据中的指令吗?
7代币盗窃9007http://localhost:9007/sseMCP01 –令牌管理不善和秘密暴露身份验证令牌在MCP上下文中存储和引用。以普通用户身份进行身份验证,然后寻找方法提取或重用通过工具响应或资源元数据公开的管理令牌。

🔴 困难

#挑战端口SSE端点OWASP LLM风险提示
8恶意代码执行9008http://localhost:9008/sseMCP05 –命令注入和执行代码执行工具在没有适当沙盒的情况下运行Python代码片段。制作一个从文件系统读取敏感文件或执行系统命令的有效负载——凭据文件位于 /tmp/dvmcp_challenge8/sensitive/credentials.txt.
9远程访问控制9009http://localhost:9009/sseMCP10 –上下文注入和过度共享笔记工具存储每个用户的数据,但依赖于客户端提供用户名。如果您提供了不同的用户名,会发生什么?你能阅读属于的笔记吗 admin?
10多矢量攻击9010http://localhost:9010/sseMCP01 / MCP06 / MCP07 –令牌管理不当、及时注入和身份验证不足此挑战会链接多个漏洞。首先在工具元数据中查找泄漏的令牌,然后使用提示注入来升级权限,最后访问受保护的云配置资源。分阶段思考——每一步都会开启下一步。

______________________________________________________________________

OWASP LLM前10名——参考

ID标题描述
MCP01令牌管理不善和秘密暴露存储在模型内存或协议日志中的硬编码凭据、长期令牌和秘密可能会使敏感环境暴露于未经授权的访问。
MCP02通过作用域爬行进行特权升级MCP服务器内的临时或松散定义的权限通常会随着时间的推移而扩展,从而赋予代理过多的能力。
MCP03工具中毒攻击者破坏工具/插件或其输出,注入恶意、误导或有偏见的上下文来操纵模型行为。
MCP04软件供应链攻击和依赖篡改受损的依赖关系可能会改变代理行为或引入执行级后门。
MCP05命令注入和执行AI代理在没有适当验证或净化的情况下,使用不受信任的输入构建和执行系统命令或代码片段。
MCP06通过上下文有效载荷进行提示注入“解释器”是模型,“有效载荷”是文本。因为模型遵循自然语言指令,所以提示注入攻击既强大又微妙。
MCP07身份验证和授权不足MCP服务器或代理无法正确验证身份或实施访问控制,从而暴露了关键的攻击路径。
MCP08缺乏审计和遥测有限的遥测阻碍了调查和事件响应。维护工具调用和上下文更改的详细日志。
MCP09影子MCP服务器在安全治理之外运行的未经批准或无监督的MCP部署——通常使用默认凭据或许可配置。
MCP10上下文注入和过度共享共享、持久或作用域不足的上下文窗口将敏感信息从一个任务、用户或代理暴露给另一个。

______________________________________________________________________

项目结构

damn-vulnerable-MCP-server/
├── README.md                     # This file
├── requirements.txt              # Python dependencies
├── start_sse_servers.sh          # Start all 10 challenge servers
├── startup.sh                    # Docker entrypoint setup
├── supervisord.conf              # Process supervisor config (Docker)
├── Dockerfile                    # Docker image definition
├── fixes/
│   └── ollama_mcp_client.py      # Main MCP client (Ollama-based)
├── challenges/
│   ├── easy/                     # Challenges 1–3  (ports 9001–9003)
│   ├── medium/                   # Challenges 4–7  (ports 9004–9007)
│   └── hard/                     # Challenges 8–10 (ports 9008–9010)
├── docs/
│   ├── challenges.md             # Challenge descriptions
│   ├── cursor_sse_compatibility.md
│   ├── mcp_overview.md           # MCP protocol overview
│   ├── project_structure.md
│   ├── README_SSE.md             # SSE connection guide
│   └── setup.md                  # Setup instructions
└── common/                       # Shared utilities

解决方案

没有提供解决方案。自己尝试每个挑战——使用上面挑战表中的提示和OWASP参考作为指导。

免责声明

本项目仅用于教育目的。这里展示的漏洞应该 从不 在生产系统中实施。在实施MCP服务器时,始终遵循安全最佳实践。

许可证

此项目在MIT许可证下获得许可——有关详细信息,请参阅许可证文件。

作者

该项目由Harish Santanalakshmi Ganesan使用Cursor IDE和Manus AI创建。

目录标签

目录标签

安全PythonCline安全研究本地部署漏洞教育模型协议AI安全

支持客户端

CursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP