ARTICLE / 安全
自托管知识管理与文档协作平台高危攻击链专题:XWiki / MediaWiki / HedgeDoc / Wiki.js / DokuWiki / BookStack 漏洞全解析
0x00 专题概述
自托管知识管理与文档协作平台(Self-hosted Knowledge Management & Documentation Collaboration Platform)是企业内部知识沉淀、团队协作和文档管理的核心基础设施。与传统 SaaS 方案不同,自托管部署意味着企业需要自行负责安全运维,而这恰恰是安全风险最集中的环节。从 XWiki 的 Groovy 模板注入到 HedgeDoc 的任意文件读取,从 MediaWiki 的权限绕过到 Wiki.js 的认证缺陷,这些平台在过去几年中累积了大量高危漏洞,部分已被 RondoDox 僵尸网络等在野威胁组织大规模利用。
本专题系统梳理 XWiki、HedgeDoc、MediaWiki、Wiki.js、DokuWiki、BookStack 六大主流自托管知识管理平台的高危漏洞攻击链,覆盖模板引擎注入(SSTI / Groovy RCE)、认证/授权缺陷、文件操作滥用、XSS 与客户端攻击、XML/Markdown 解析漏洞五大共性攻击模式。每个 CVE 均提供漏洞原理分析、HTTP PoC、Python 检测脚本和 Nuclei YAML 模板,面向渗透测试人员和安全研究员提供完整的攻防参考。
覆盖漏洞一览表
| CVE 编号 | 产品 | CVSS | 漏洞类型 | 未授权利用 |
|---|---|---|---|---|
| CVE-2025-24893 | XWiki | 9.8 Critical | Groovy RCE (SolrSearch) | 是 |
| CVE-2024-31982 | XWiki | 10.0 Critical | SSTI / Groovy RCE (DatabaseSearch) | 是 |
| CVE-2025-23025 | XWiki | 9.0 Critical | 实时编辑器提权 | 否(需低权限) |
| CVE-2023-29509 | XWiki | 9.8 Critical | Groovy RCE (documentTree) | 是 |
| CVE-2021-29475 | HedgeDoc | 10.0 Critical | PDF 导出任意文件读取 | 否(需编辑权限) |
| CVE-2021-29474 | HedgeDoc | 5.8 Medium | 路径遍历 .md 文件读取 | 是 |
| CVE-2024-40603 | MediaWiki | 4.3 Medium | CSRF (ArticleRatings) | 是 |
| CVE-2025-67480 | MediaWiki | High | API Query Revisions RCE | 否 |
| CVE-2022-1681 | Wiki.js | 9.8 Critical | 认证绕过获取 root 权限 | 是 |
| CVE-2020-15236 | Wiki.js | 9.1 High | 路径遍历任意文件读取 | 是 |
| CVE-2017-18123 | DokuWiki | 8.6 High | 反射型文件下载 (RFD) | 是 |
| CVE-2024-33103 | DokuWiki | 6.1 Medium | SVG 任意文件上传 | 否 |
| CVE-2024-36676 | BookStack | 8.8 High | 访问控制缺陷 / 用户枚举 | 是 |
| CVE-2021-4119 | BookStack | 9.8 Critical | 访问控制绕过 | 否 |
0x01 XWiki 高危漏洞
XWiki 是一个基于 Java 的开源企业级 wiki 平台,支持 Groovy、Velocity、Python 等多种脚本语言,默认启用 JSR-223 脚本引擎。这种强大的脚本能力是 XWiki 的核心竞争力,但同时也是其最大的安全风险来源。2025 年 11 月,RondoDox 僵尸网络大规模利用 XWiki 漏洞,超过 3400 台服务器被感染,部署了 XMRig 加密货币矿机。CISA 已将多个 XWiki CVE 加入 KEV(Known Exploited Vulnerabilities)目录。
0x01.1 CVE-2025-24893 — SolrSearch 未授权 Groovy RCE
漏洞背景
CVE-2025-24893 是 XWiki SolrSearch 宏中的 eval 注入漏洞,允许任何访客用户通过 /bin/get/Main/SolrSearch 端点执行任意 Groovy 代码。该漏洞于 2025 年 2 月 20 日公开,2025 年 3 月即被在野利用,2025 年 10 月 30 日被 CISA 加入 KEV 目录。VulnCheck 于 2025 年 10 月 24 日首次检测到在野利用尝试。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | 5.3-milestone-2 至 15.10.10;16.0.0-rc-1 至 16.4.0 |
| 修复版本 | 15.10.11、16.4.1、16.5.0RC1 |
| CVSS 评分 | 9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| EPSS 评分 | 92.01%(极高利用概率) |
漏洞原理分析
XWiki 内置 SolrSearch 宏(定义在 Main.SolrSearchMacros),用于通过嵌入式 Solr 引擎执行全文搜索。漏洞根因是该宏在处理搜索参数时未对输入进行清理,导致攻击者可以通过特殊构造的请求注入并执行任意 Groovy 代码。
攻击链路径:用户请求 → SolrSearch 宏接收 text 参数 → 参数被拼接到 Groovy 求值上下文 → 服务器执行注入的 Groovy 代码 → RCE。
HTTP PoC
Python PoC 检测脚本
Nuclei YAML 检测模板
0x01.2 CVE-2024-31982 — DatabaseSearch 未授权 SSTI / Groovy RCE
漏洞背景
CVE-2024-31982 是 XWiki DatabaseSearch 功能中的 SSTI(Server-Side Template Injection)漏洞,CVSS 评分 10.0。该漏洞自 2.4-milestone-1 版本(约 2010 年)起即存在,影响范围极广。数据库搜索功能默认对所有用户(包括匿名访客)开放,使得该漏洞可在无需认证的情况下被利用。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | 2.4-milestone-1 至 14.10.19;15.0-rc-1 至 15.5.3;15.6-rc-1 至 15.10-rc-1 之前 |
| 修复版本 | 14.10.20、15.5.4、15.10-rc-1 |
| CVSS 评分 | 10.0(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) |
漏洞原理分析
XWiki 的 DatabaseSearch 页面允许用户通过搜索文本参数注入 Velocity/Groovy 模板语法。由于搜索结果被 XWiki 渲染引擎处理,攻击者可以构造包含 {{async}}{{groovy}} 宏的搜索查询,使服务器在渲染搜索结果时执行任意 Groovy 代码。成功利用后,攻击者将获得 programming rights,从而完全控制 XWiki 实例。
HTTP PoC
Python PoC 检测脚本
Nuclei YAML 检测模板
0x01.3 CVE-2025-23025 — Realtime WYSIWYG 编辑器权限提升
漏洞背景
CVE-2025-23025 存在于 XWiki Realtime WYSIWYG Editor 扩展中。一个仅拥有 edit 权限的低权限用户可以加入拥有 script 或 programming 权限的高权限用户的实时编辑会话,在其中插入脚本渲染宏(如 {{velocity}}),从而以高权限用户的身份执行任意代码,完成权限提升。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | 13.9-rc-1 至 15.10.11;13.9-rc-1 至 16.4.0;13.9-rc-1 至 16.6.0-rc-1 之前 |
| 修复版本 | 15.10.12、16.4.1、16.6.0-rc-1 |
| CVSS 评分 | 9.0(CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H) |
漏洞原理分析
实时 WYSIWYG 编辑器允许多个用户同时编辑同一页面。当低权限用户加入会话后,插入的脚本宏会在高权限用户(拥有 script 或 programming rights)的浏览器端被渲染执行。在 XWiki 15.10.9+ 和 16.2.0+ 中,编辑内容会自动重新渲染给会话中的所有用户,这意味着攻击者只需插入宏即可触发执行。
HTTP PoC
0x01.4 CVE-2023-29509 — documentTree 宏 Groovy RCE
漏洞背景
CVE-2023-29509 存在于 XWiki Flamingo Theme Application 扩展的 documentTree 宏中。该宏用于列出给定文档的子文档,当通过特定的 GET 参数(sheet=FlamingoThemesCode.WebHome)调用时,会将未经过滤的参数值传递给 documentTree 宏,导致 Groovy 代码注入。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | Flamingo Theme 版本 1.23.1 至 1.34 |
| 修复版本 | Flamingo Theme 1.35+ |
| CVSS 评分 | 9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
HTTP PoC
0x01.5 XWiki 僵尸网络在野利用
2025 年 11 月,RondoDox 僵尸网络将 CVE-2025-24893 加入其攻击武器库。VulnCheck 于 2025 年 11 月 3 日首次观测到 RondoDox 利用该漏洞进行攻击。攻击流程为两阶段:
- 第一阶段:通过 SolrSearch 端点注入 Base64 编码的 Groovy 代码,下载并执行名为
rondo.<value>.sh的脚本 - 第二阶段:该脚本从攻击者控制的服务器(如
74.194.191.52)下载 RondoDox 主体载荷,将其加入 DDoS 僵尸网络
其他攻击者在同一时间窗口内利用该漏洞部署 XMRig 加密货币矿机、建立 bash 反向 Shell,以及使用 Nuclei 模板进行大规模扫描。
0x02 HedgeDoc 高危漏洞
HedgeDoc(前身 CodiMD)是一个开源实时协作 Markdown 笔记平台,广泛用于团队知识管理和技术文档协作。其架构基于 Node.js + Express,支持多种认证方式(本地、LDAP、OAuth2、SAML)。HedgeDoc 的攻击面主要集中在文件操作、OAuth2 流程和 Markdown 渲染三个维度。
0x02.1 CVE-2021-29475 — PDF 导出任意文件读取
漏洞背景
CVE-2021-29475 是 HedgeDoc PDF 导出功能中的任意文件读取漏洞。攻击者可以利用 PhantomJS 的 file:/// 协议引用,在 PDF 导出过程中读取服务器上的任意文件,包括包含数据库凭据和 OAuth 密钥的 config.json。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 1.5.0 |
| 修复版本 | 1.5.0 |
| CVSS 评分 | 10.0(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N) |
漏洞原理分析
攻击者在可编辑的笔记内容中嵌入 file:/// 引用。当其他用户导出该笔记为 PDF 时,PhantomJS 渲染引擎虽然不会将 file:/// 引用渲染到 PDF 文件本身,但会在内部处理这些引用。通过 JavaScript 渲染,攻击者可以轻松将文件内容外泄。由于 config.json 通常包含敏感信息(数据库密码、OAuth secret 等),该漏洞的影响极为严重。
HTTP PoC
Python PoC 检测脚本
Nuclei YAML 检测模板
0x02.2 CVE-2021-29474 — 路径遍历 .md 文件读取
漏洞背景
CVE-2021-29474 是 HedgeDoc 中的相对路径遍历漏洞。攻击者可以通过 URL 编码的 .. 序列读取服务器文件系统上的任意 .md 文件。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 1.8.0 |
| 修复版本 | 1.8.0 |
| CVSS 评分 | 5.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N) |
HTTP PoC
0x02.3 HedgeDoc 其他安全问题
| CVE | 类型 | CVSS | 说明 |
|---|---|---|---|
| CVE-2023-38487 | 未认证 API 数据暴露 | 8.2 | API 未正确实施访问控制 |
| CVE-2021-39175 | 存储型 XSS | 6.1 | 未认证用户可注入任意 HTML |
| CVE-2021-29503 | 存储型 XSS | 6.1 | 笔记内容中的 XSS |
| CVE-2020-26287 | 注入漏洞 | 8.7 | API 参数注入 |
| CVE-2020-26286 | 未认证访问 | 7.5 | 认证绕过 |
0x03 MediaWiki 高危漏洞
MediaWiki 是全球最广泛使用的 wiki 软件(驱动 Wikipedia),拥有超过 460 个已知 CVE。其攻击面涵盖扩展机制、API 接口、权限系统和用户生成内容渲染等多个维度。尽管单个 CVE 的严重性通常不如 XWiki,但其庞大的安装基数使得累积风险不容忽视。
0x03.1 CVE-2024-40603 — ArticleRatings 扩展 CSRF
漏洞背景
CVE-2024-40603 存在于 MediaWiki ArticleRatings 扩展中。Special:ChangeRating 端点允许通过 GET 请求执行 CSRF 攻击,修改页面评分数据。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | ArticleRatings 扩展至 1.42.1 |
| 修复版本 | 需升级 ArticleRatings 扩展 |
| CVSS 评分 | 4.3(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N) |
HTTP PoC
0x03.2 CVE-2025-67480 — ApiQueryRevisionsBase RCE
漏洞背景
CVE-2025-67480 是 MediaWiki ApiQueryRevisionsBase.php 中的输入验证不当漏洞,可能导致远程代码执行。该漏洞影响 MediaWiki 1.39.x、1.43.x、1.44.x 和 1.45.x 多个版本分支。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 1.39.16、< 1.43.6、< 1.44.3、< 1.45.1 |
| 修复版本 | 1.39.16、1.43.6、1.44.3、1.45.1 |
| CVSS 评分 | High |
HTTP PoC
Nuclei YAML 检测模板
0x03.3 MediaWiki 扩展安全历史
MediaWiki 扩展生态是其最大的安全风险来源。以下为近年来影响较大的扩展相关漏洞:
| CVE | 扩展 | 类型 | CVSS |
|---|---|---|---|
| CVE-2025-61652 | DiscussionTools | XSS | Medium |
| CVE-2025-67482 | Scribunto | 代码执行 | Medium |
| CVE-2025-32697 | 核心 | 权限保留不当 | Medium |
| CVE-2025-67476 | ImportableOldRevisionImporter | RCE | Medium |
0x04 Wiki.js 高危漏洞
Wiki.js 是一个基于 Node.js 的现代 wiki 引擎,使用 PostgreSQL 作为后端数据库。其攻击面主要集中在认证机制、GraphQL API 和文件系统操作三个维度。
0x04.1 CVE-2022-1681 — 认证绕过获取 root 权限
漏洞背景
CVE-2022-1681 是 Wiki.js 中的认证绕过漏洞,允许攻击者通过备用路径或通道绕过认证,获取 root 用户权限。该漏洞 CVSS 评分 9.8,影响所有 < 2.5.281 的版本。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 2.5.281 |
| 修复版本 | 2.5.281 |
| CVSS 评分 | 9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CWE | CWE-287(Improper Authentication) |
HTTP PoC
Python PoC 检测脚本
Nuclei YAML 检测模板
0x04.2 CVE-2020-15236 — 路径遍历任意文件读取
漏洞背景
CVE-2020-15236 是 Wiki.js 中的路径遍历漏洞,当启用本地资产缓存的存储模块(如 Local File System 或 Git)时,攻击者可以通过构造特殊 URL 读取文件系统上的任意文件。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 2.5.151 |
| 修复版本 | 2.5.151 |
| CVSS 评分 | 9.1(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) |
HTTP PoC
0x04.3 CVE-2022-23654 — 路径访问控制绕过
漏洞背景
CVE-2022-23654 存在于 Wiki.js 的页面移动功能中。拥有受限路径写入权限的认证用户可以在移动页面时指定不同的目标页面 ID,绕过路径访问控制,修改其无权访问的页面内容。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 2.5.302 |
| 修复版本 | 2.5.302 |
| CVSS 评分 | Medium |
0x05 DokuWiki 高危漏洞
DokuWiki 是一个无需数据库的轻量级 wiki 系统,以纯文件存储(txt 文件)为特色。其攻击面主要集中在文件上传处理、URL 参数编码和 RSS/Atom feed 渲染三个维度。
0x05.1 CVE-2017-18123 — 反射型文件下载 (RFD)
漏洞背景
CVE-2017-18123 是 DokuWiki 中的反射型文件下载(Reflected File Download, RFD)漏洞。/lib/exe/ajax.php 的 call 参数未正确编码用户输入,导致服务器响应中包含原始控制字符,攻击者可以诱导用户下载并执行恶意批处理文件。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | ≤ 2017-02-19e |
| 修复版本 | 2017-02-19e 之后的版本(commit 238b8e8) |
| CVSS 评分 | 8.6(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N) |
漏洞原理分析
服务器在收到未知的 AJAX 调用时,会将用户输入的 call 参数原样反射到错误消息中:AJAX call '<user_input>' unknown!。由于响应类型为 text/html 且 bash 控制字符(||、&&、> 等)在反射时保持完整,攻击者可以构造如 ||calc|| 这样的载荷,使响应内容成为可执行的批处理脚本。
HTTP PoC
Python PoC 检测脚本
Nuclei YAML 检测模板
0x05.2 CVE-2024-33103 — SVG 任意文件上传代码执行
漏洞背景
CVE-2024-33103 存在于 DokuWiki Media Manager 组件中。攻击者可以上传特制的 SVG 文件实现任意代码执行。该漏洞需要产品存在特定的错误配置才能被利用。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | 2024-02-06a 及之前版本(需特定配置) |
| CVSS 评分 | 6.1(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N) |
HTTP PoC
0x05.3 DokuWiki 其他高危漏洞
| CVE | 类型 | CVSS | 说明 |
|---|---|---|---|
| CVE-2024-42758 | 存储型 XSS | 5.4 | indexmenu 插件存储型 XSS |
| CVE-2023-34408 | 存储型 XSS | 5.4 | RSS 标题中的 XSS |
| CVE-2018-15474 | CSV 注入 | 9.6 | 用户管理 CSV 导出中的公式注入 |
| CVE-2019-25338 | 用户名枚举 | 6.9 | 密码重置功能用户名枚举 |
0x06 BookStack / 其他平台漏洞
0x06.1 BookStack CVE-2024-36676 — 访问控制缺陷
漏洞背景
CVE-2024-36676 是 BookStack 中的访问控制缺陷。攻击者可以通过公共表单确认系统中是否存在特定用户(用户枚举),并利用通知邮件功能执行定向拒绝服务攻击。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 24.05.1 |
| 修复版本 | 24.05.1 |
| CVSS 评分 | 8.8(CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H) |
HTTP PoC
Nuclei YAML 检测模板
0x06.2 BookStack CVE-2023-6199 — SSRF 本地文件读取
漏洞背景
CVE-2023-6199 是 BookStack 中的 SSRF 漏洞,允许过滤和读取服务器本地文件。
受影响版本 / 修复版本
| 项目 | 版本 |
|---|---|
| 受影响版本 | < 23.10.3 |
| 修复版本 | 23.10.3 |
| CVSS 评分 | 6.5 |
HTTP PoC
0x06.3 BookStack 历史高危漏洞
| CVE | 类型 | CVSS | 说明 |
|---|---|---|---|
| CVE-2021-4119 | 访问控制绕过 | 9.8 | 严重的访问控制缺陷 |
| CVE-2022-40690 | 存储型 XSS | 5.4 | 认证用户注入脚本 |
| CVE-2021-3916 | 路径遍历 | 6.5 | 目录遍历 |
| CVE-2021-3915 | 文件上传 | 5.7 | 不受限制的危险文件类型上传 |
0x07 公开 PoC 收集情况与利用思路
PoC 收集情况总表
| CVE | PoC 仓库 / 来源 | 可用性 | 工具 |
|---|---|---|---|
| CVE-2025-24893 | VulnCheck、GitHub Exploit、Nuclei Template | 在野利用中 | Nuclei / Python / curl |
| CVE-2024-31982 | Vicarius | 公开 PoC | Python / curl |
| CVE-2022-1681 | GitHub Advisory | 公开 PoC | GraphQL / curl |
| CVE-2017-18123 | GitHub Issue #2029 | 公开 PoC | curl |
| CVE-2021-29475 | GitHub Advisory | 公开 PoC | curl / Python |
| CVE-2024-36676 | GitHub Issue #4993 | 公开 PoC | curl / Python |
| Nuclei Templates | projectdiscovery/nuclei-templates | 持续更新 | Nuclei |
关键 PoC 仓库链接
- XWiki Exploit Collection: https://github.com/a1baradi/Exploit/blob/main/CVE-2025-24893.py
- XWiki Security Advisories: https://github.com/xwiki/xwiki-platform/security/advisories
- HedgeDoc Security Advisories: https://github.com/hedgedoc/hedgedoc/security/advisories
- Wiki.js Security Advisories: https://github.com/Requarks/wiki/security/advisories
- BookStack Releases: https://github.com/BookStackApp/BookStack/releases
- Nuclei Templates (XWiki): https://github.com/projectdiscovery/nuclei-templates/tree/main/http/cves/2025
防守型验证思路
- 资产发现:使用 Shodan/Censys 搜索特定平台的暴露实例
- 版本探测:通过
/xwiki/bin/view/Main/WebHome、/wiki/Main_Page、/login等端点识别平台类型和版本 - 漏洞验证:使用无害探测载荷(如
println('test'))确认漏洞存在性 - 批量扫描:使用 Nuclei 配合对应模板进行批量检测
0x08 共性攻击模式分析
模式 1:模板引擎注入(SSTI / Groovy RCE)
代表 CVE:CVE-2025-24893、CVE-2024-31982、CVE-2023-29509
这是自托管知识管理平台中最严重的攻击模式。XWiki 的 Groovy/Velocity 脚本引擎、HedgeDoc 的 Markdown 渲染器、MediaWiki 的 ParserFunction 都可能成为注入点。核心问题是用户可控输入被传递到模板/脚本求值上下文。
攻击特征:
- 无需认证(大部分情况)
- 载荷通常包含
{{groovy}}、{{velocity}}、println等关键字 - 可实现完全的服务器端代码执行
- 已被 RondoDox 等僵尸网络大规模在野利用
模式 2:认证/授权缺陷
代表 CVE:CVE-2022-1681、CVE-2024-36676、CVE-2025-23025
自托管平台通常面临更复杂的认证配置需求(LDAP、OAuth2、SAML),这增加了实现错误的可能性。Wiki.js 的认证绕过允许获取 root 权限,BookStack 的访问控制缺陷允许用户枚举,XWiki 的实时编辑器允许低权限用户借助高权限用户执行代码。
模式 3:文件操作滥用
代表 CVE:CVE-2021-29475、CVE-2021-29474、CVE-2017-18123、CVE-2020-15236
文件路径处理不当是自托管平台的共性问题。HedgeDoc 的 PDF 导出利用 file:/// 协议读取任意文件,路径遍历漏洞出现在 HedgeDoc、Wiki.js 等多个平台中,DokuWiki 的 RFD 漏洞利用 HTTP 响应中的控制字符实现文件下载攻击。
模式 4:XSS 与客户端攻击
代表 CVE:CVE-2024-40603、CVE-2023-34408、CVE-2024-42758
作为内容协作平台,用户生成内容的渲染是核心功能,也是 XSS 的天然温床。MediaWiki 的扩展生态尤为严重,2025 年单年就披露了超过 10 个 XSS 漏洞。DokuWiki 的存储型 XSS 由于其纯文件存储特性,恶意内容会持久化在 .txt 文件中。
模式 5:XML/Markdown 解析漏洞
代表 CVE:CVE-2021-21383(Wiki.js Mustache 注入)、CVE-2025-67480(MediaWiki API 解析)
Wiki.js 使用 Vue.js 渲染 Mustache 表达式,即使在 <pre> 标签内也会被解析执行。MediaWiki 的 API 查询解析器在处理特定参数时存在输入验证缺陷。Markdown 解析器的扩展语法(如 HedgeDoc 的短代码 [time=...])也可能是注入向量。
0x09 应急排查与防守建议
紧急排查清单
| 检查项 | 命令 / 方法 | 严重性 |
|---|---|---|
| XWiki SolrSearch RCE | 访问 /xwiki/bin/get/Main/SolrSearch?media=rss&text=test 检查响应 | 严重 |
| XWiki DatabaseSearch RCE | 访问 /xwiki/bin/get/Main/DatabaseSearch?text=test 检查响应 | 严重 |
| XWiki 版本检查 | 访问 /xwiki/bin/view/Main/WebHome 查看页脚版本号 | 高 |
| HedgeDoc 版本检查 | 访问 /api/config 或查看 package.json | 高 |
| Wiki.js 认证测试 | 对 /graphql 端点执行 authentication mutation | 高 |
| DokuWiki RFD | 访问 /lib/exe/ajax.php?call=test 检查响应 | 中 |
| BookStack 用户枚举 | 对 /password_reset 发送已知和未知邮箱对比响应 | 中 |
日志关键字段表
| 日志类型 | 关键字段 | 异常特征 |
|---|---|---|
| Apache/Nginx access.log | request_uri, query_string | SolrSearch?text=, DatabaseSearch?text= |
| XWiki 日志 | Groovy execution | 异常的 ProcessBuilder、Runtime.exec 调用 |
| HedgeDoc 日志 | PDF export requests | 异常的 file:/// 引用 |
| Wiki.js 日志 | GraphQL queries | 未授权的 authentication mutation |
| 系统日志 | /var/log/syslog | 异常进程创建(wget、curl 下载到 /tmp) |
紧急缓解措施
- 立即升级:将所有平台升级至最新稳定版本
- 禁用匿名访问:关闭 XWiki、MediaWiki 等平台的匿名/访客访问权限
- WAF 规则:
- 拦截包含
{{groovy}}、{{velocity}}的请求 - 拦截包含
ProcessBuilder、Runtime.exec的参数 - 拦截
/bin/get/Main/SolrSearch和/bin/get/Main/DatabaseSearch的异常参数
- 拦截包含
- 网络隔离:将知识管理平台置于内网或 VPN 之后,限制公网暴露面
- 备份验证:确认所有平台数据备份完整且可恢复
长期安全加固建议
- 补丁管理:建立定期(至少每月)的安全更新机制,重点关注 CVE 和安全通告
- 最小权限原则:为平台用户分配最低必要权限,禁用不必要的脚本执行权限
- 内容安全策略(CSP):部署严格的 CSP 头部,限制可执行脚本来源
- 输入验证:对所有用户输入实施白名单验证和输出编码
- 文件上传控制:限制可上传的文件类型,禁止 SVG 等可执行文件类型
- 监控告警:部署 SIEM 规则监控异常模板注入、文件读取和权限提升行为
- 定期渗透测试:至少每季度对自托管平台进行安全评估
0x0A 参考资料
- XWiki Security Policy - https://dev.xwiki.org/xwiki/bin/view/Community/SecurityPolicy/
- CVE-2025-24893 GitHub Advisory - https://github.com/advisories/GHSA-rr6p-3pfg-562j
- VulnCheck: XWiki CVE-2025-24893 Exploited in the Wild - https://www.vulncheck.com/blog/xwiki-cve-2025-24893-eitw
- CISA KEV Catalog - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- HedgeDoc Security Advisories - https://github.com/hedgedoc/hedgedoc/security/advisories
- Wiki.js Security Advisories - https://github.com/Requarks/wiki/security/advisories
- DokuWiki CVE-2017-18123 Issue - https://github.com/dokuwiki/dokuwiki/issues/2029
- BookStack CVE-2024-36676 - https://github.com/BookStackApp/BookStack/issues/4993
- Nuclei Templates Collection - https://github.com/projectdiscovery/nuclei-templates
- XWiki Critical Vulnerabilities Complete Analysis - https://blog.securelayer7.net/xwiki-critical-vulnerabilities/
- RondoDox Botnet XWiki Exploitation - https://thehackernews.com/2025/11/rondodox-exploits-unpatched-xwiki.html
- NVD - National Vulnerability Database - https://nvd.nist.gov/
免责声明:本文仅用于安全研究和授权渗透测试目的。文中提供的 PoC 代码和检测脚本仅供安全专业人员在获得明确授权的环境中使用。未经授权对计算机系统进行测试是违法行为。作者不对任何因使用本文信息而导致的损失或损害承担责任。请遵守当地法律法规,仅在获得合法授权的情况下进行安全测试。