OpenCMS XXE 漏洞总结 漏洞概述 漏洞名称:XXE, You Can Depend On Me (OpenCMS CVE-2023-42344 and Friends) 涉及漏洞编号:CVE-2023-42344, CVE-2023-42343, CVE-2023-42345, CVE-2023-42346 漏洞类型:XML外部实体注入 (XXE) 受影响组件:OpenCMS 框架中的 端点(基于 Apache Chemistry 库)。 触发机制:攻击者通过向 端点发送包含 SQL 风格语法的 XML 格式 POST 请求,利用 Apache Chemistry 解析器处理外部 DTD 文件时的缺陷,触发 XXE 漏洞。 影响范围 受影响版本:OpenCMS 9.5.3 及更早版本(截至文章撰写时,仍有约 1,000 个实例运行此版本)。 部署现状:尽管最新版本为 16.0,但仍有约 6,000 个实例运行着 15 年前发布的 OpenCMS 7。 潜在风险:攻击者可利用该漏洞读取服务器上的敏感文件(如 文件、配置文件、硬编码凭证等),可能导致信息泄露或进一步攻击。 修复方案 官方建议:升级 OpenCMS 至最新版本(16.0 或更高)。 临时缓解措施: 确保 端点受到严格的身份验证和访问控制保护。 注意:即使使用 Basic Auth 进行暴力破解,该端点也存在锁定机制,但这并不适用于 端点本身。 避免在配置中允许下载 文件等敏感资源。 对应用程序资源仓库进行权限最小化配置,防止未授权用户通过 “TCK” 功能枚举或操作对象。 POC / 利用代码 文中未提供完整的、可直接执行的 POC 代码块,但描述了利用方式: > 向 端点发送一个 XML 格式的 POST 请求,其中包含 SQL 风格语法。例如,尝试注入一个简单的 XXE Out of Bounds (OOB) payload,以触发解析器输出错误堆栈跟踪,从而确认漏洞存在。 具体请求结构参考 Apache Chemistry 文档: https://documentation.opencms.org/opencms-documentation/interfaces/cmis/index.html > 注意:实际利用需构造特定的 XML 内容,文中未给出完整 payload 示例。