该漏洞影响运行于 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 可能自动去除末尾点
2. 发送恶意请求
向目标 Solr 实例发送 PUT 请求 上传 ZIP:
●关键参数:
● action=UPLOAD : 触发配置集上传。
● name=exploit_config : 指定新配置集名称。
● file=exploit.zip : 恶意 ZIP 文件。
3. 验证攻击结果
●检查文件系统:确认在 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 的访问权限,同时加强文件系统的监控与防护措施。
原文始发于微信公众号(安全圈我最菜wu):Solr 文件上传路径遍历漏洞(CVE-2024-52012)分析漏洞成因
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论