Command Injection Vulnerability in MCP File Reader

Command Injection Vulnerability in MCP File Reader

site icon
2025.04.27 0
Python安全漏洞演示教育工具其它
该仓库展示了一个Python MCP服务器实现中的关键命令注入漏洞。该漏洞允许攻击者通过操纵文件路径参数在主机系统上执行任意shell命令。 ### 产品定位 这是一个用于教育目的的安全漏洞演示项目,展示了MCP文件读取器中的命令注入漏洞。 ### 核心功能 1. 演示文件读取功能中的命令注入漏洞 2. 展示如何利用该漏洞执行任意系统命令 3. 提供修复该漏洞的正确方法 ### 适用场景 1. 安全研究人员学习命令注入漏洞 2. 开发人员了解如何避免类似安全漏洞 3. 用于安全培训和教育目的
View on GitHub

Overview

基本能力

核心功能

  1. 演示文件读取功能中的命令注入漏洞
  2. 展示如何利用该漏洞执行任意系统命令
  3. 提供修复该漏洞的正确方法

使用场景

  1. 安全研究人员学习命令注入漏洞
  2. 开发人员了解如何避免类似安全漏洞
  3. 用于安全培训和教育目的

工具列表

  1. MCP Inspector - 用于连接和测试MCP服务器的GUI工具
  2. 命令行工具 - 用于演示漏洞利用

常见问题

  1. 为什么这个漏洞很危险?
  2. 因为它允许攻击者执行任意系统命令
  3. 如何修复这个漏洞?
  4. 避免使用shell=True与用户提供的输入
  5. 使用参数列表而不是shell命令
  6. 执行适当的路径验证

使用教程

使用依赖

  • Python 3.12或更高版本
  • MCP库版本1.6.0

安装教程

  1. 克隆仓库: bash git clone https://github.com/Eliran79/Vulnerable-file-reader-server.git cd Vulnerable-file-reader-server

  2. 安装MCP服务器: bash mcp install main.py

  3. 配置Claude Desktop使用MCP服务器: 编辑~/.config/claude-desktop/claude_desktop_config.json文件

  4. 启动MCP服务器开发模式: bash mcp dev main.py

调试方式

  1. 安装并运行MCP inspector: bash pip install mcp-inspector mcp-inspector

  2. 在MCP Inspector GUI中连接服务器:

  3. 设置Transport Type为"STDIO"
  4. 设置Command为: run --with mcp run main.py
  5. 点击"Restart"

  6. 测试漏洞:

  7. 转到"Tools"标签
  8. 找到"read_file"工具
  9. 在"file_name"字段中输入测试payload
  10. 点击"Run Tool"

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。