关键信息 漏洞名称 Local File Inclusion via saveOutline API Location Parameter 影响版本 受影响版本: <=10.0.6 修复版本: 11.0.0 严重性 CVSS v3 基本评分: 8.5/10 攻击向量: 网络 攻击复杂度: 低 所需权限: 低 用户交互: 无 范围: 不变 机密性影响: 高 完整性影响: 无 可用性影响: 无 CVE ID CVE-2023-49138 弱点 CWE-22: 路径遍历 CWE-73: 外部控制的文件名或路径 描述 该漏洞存在于HAXCMS saveOutline端点中,允许低权限用户通过操纵写入site.json的location字段来读取服务器上的任意文件。这使得攻击者能够访问敏感系统文件(如/etc/passwd、应用程序秘密或配置文件)。 细节 漏洞源于HAXCMS后端处理location字段的方式。当用户发送POST请求到/system/api/saveOutline时,后端将提供的location值直接写入与站点关联的site.json文件中,而未对输入进行验证或清理。 稍后,location参数在HAXCMSSite.php第1248行被解释以解析和加载给定节点的内容。如果location字段包含相对路径(如../../etc/passwd),应用程序将尝试读取并渲染该文件。 PoC 1. 认证到CMS并获取JWT和CSRF令牌。 2. 发送带有path遍历注入的POST请求到/system/api/saveOutline。 3. 使用curl查看网站根目录的文件内容。 影响 这是一个经过身份验证的本地文件包含(LFI)漏洞,攻击者可以通过location参数读取www-data用户可访问的文件系统上的任何文件。