
Command Injection Vulnerability in MCP File Reader

2025.04.27
0
Python安全漏洞演示教育工具其它
该仓库展示了一个Python MCP服务器实现中的关键命令注入漏洞。该漏洞允许攻击者通过操纵文件路径参数在主机系统上执行任意shell命令。
### 产品定位
这是一个用于教育目的的安全漏洞演示项目,展示了MCP文件读取器中的命令注入漏洞。
### 核心功能
1. 演示文件读取功能中的命令注入漏洞
2. 展示如何利用该漏洞执行任意系统命令
3. 提供修复该漏洞的正确方法
### 适用场景
1. 安全研究人员学习命令注入漏洞
2. 开发人员了解如何避免类似安全漏洞
3. 用于安全培训和教育目的
View on GitHub
Overview
基本能力
核心功能
- 演示文件读取功能中的命令注入漏洞
- 展示如何利用该漏洞执行任意系统命令
- 提供修复该漏洞的正确方法
使用场景
- 安全研究人员学习命令注入漏洞
- 开发人员了解如何避免类似安全漏洞
- 用于安全培训和教育目的
工具列表
- MCP Inspector - 用于连接和测试MCP服务器的GUI工具
- 命令行工具 - 用于演示漏洞利用
常见问题
- 为什么这个漏洞很危险?
- 因为它允许攻击者执行任意系统命令
- 如何修复这个漏洞?
- 避免使用shell=True与用户提供的输入
- 使用参数列表而不是shell命令
- 执行适当的路径验证
使用教程
使用依赖
- Python 3.12或更高版本
- MCP库版本1.6.0
安装教程
-
克隆仓库:
bash git clone https://github.com/Eliran79/Vulnerable-file-reader-server.git cd Vulnerable-file-reader-server
-
安装MCP服务器:
bash mcp install main.py
-
配置Claude Desktop使用MCP服务器: 编辑
~/.config/claude-desktop/claude_desktop_config.json
文件 -
启动MCP服务器开发模式:
bash mcp dev main.py
调试方式
-
安装并运行MCP inspector:
bash pip install mcp-inspector mcp-inspector
-
在MCP Inspector GUI中连接服务器:
- 设置Transport Type为"STDIO"
- 设置Command为:
run --with mcp run main.py
-
点击"Restart"
-
测试漏洞:
- 转到"Tools"标签
- 找到"read_file"工具
- 在"file_name"字段中输入测试payload
- 点击"Run Tool"