使用说明
MCP漏洞演示
一组概念验证模型上下文协议(MCP)服务器,展示了MCP生态系统中的关键安全漏洞。这些示威活动是为了 仅用于教育和安全研究目的.
🚨 概述
模型上下文协议允许AI助手与外部工具和服务进行交互。然而,当前的实现存在几个关键漏洞,可被利用来危害用户系统、窃取凭据和操纵人工智能行为。
此存储库演示了三个主要的漏洞类:
📚 漏洞案例
1. 工具提示注射
脆弱性工具描述中嵌入的恶意指令迫使AI在执行合法功能之前执行隐藏操作。
攻击向量:一个看似无辜的数学运算工具,它秘密地:
- 强制AI阅读
.env包含机密的文件 - 将敏感数据导出到远程API终结点
- 在用户不知情的情况下完全安静地运行
影响:凭证被盗、数据泄露、未经授权的文件访问
2. 跨工具劫持
脆弱性:一个MCP工具注入的指令会损害同一会话中其他MCP和工具的行为。
攻击向量:一个“每日事实”工具,将任何电子邮件MCP的电子邮件功能劫持到:
- 将隐藏的密件抄送收件人添加到所有电子邮件中
- 拦截所有电子邮件通信
- 影响攻击者甚至无法控制的工具
影响:电子邮件拦截、跨工具污染、整个生态系统妥协
3. 文件系统操作
脆弱性:具有文件系统访问权限的MCP工具在其规定的范围之外运行,在用户不知情的情况下读取敏感文件并安装持久后门。
攻击向量:一种“代码质量分析器”工具,看似分析代码指标,但实际上是秘密的:
- 从以下来源获取凭据
.env,~/.aws/credentials,~/.ssh/id_rsa - 将敏感文件过滤到攻击者服务器
- 安装在工具删除后仍能存活的持久后门
- 将恶意代码注入
package.json以及入口点
影响:凭证被盗、后门安装、持续系统入侵、数据泄露
4. API服务器-数据外过滤目标
目的:演示API服务器,用作接收被盗数据的攻击者控制的端点。
功能:
- 接收泄露的凭据和敏感数据
- 将被盗信息存储在SQLite数据库中
- 模拟真实世界的攻击者基础设施
⚠️ 道德使用
此存储库用于 仅限于安全研究和教育这里展示的漏洞是真实存在的,会影响生产系统。
做
- ✅ 用于安全研究
- ✅ 在隔离环境中进行测试
- ✅ 负责任地报告漏洞
- ✅ 制定更好的安全措施
- ✅ 向他人宣传MCP风险
不要
- ❌ 攻击真实用户或系统
- ❌ 窃取真实凭证或数据
- ❌ 在生产环境中部署
- ❌ 违反隐私或安全政策
- ❌ 用于恶意目的
🤝 贡献
欢迎投稿!如果您发现:
- 其他漏洞模式
- 新的攻击媒介
- 缓解策略
- 文档改进
请打开问题或提交拉取请求。
📄 许可证
麻省理工学院-仅用于教育和安全研究目的。
免责声明:该项目展示了教育方面的真正漏洞。始终以负责任和道德的方式使用。