【漏洞复现】Apache Solr 模板注入远程命令执行

【漏洞复现】Apache Solr 模板注入远程命令执行

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

Apache Solr存在模板注入漏洞,影响5.x至8.2.0版本。攻击者需知道Core名称,通过修改配置启用VelocityResponseWriter的params.resource.loader.enabled,即可构造恶意请求执行系统命令。文章还提到复现时可能遇到版本、请求头或方法错误等问题,并强调仅供研究学习。

🔎

延伸解读

漏洞利用前提与条件

该漏洞利用需要满足两个关键条件:一是目标Solr版本在5.x至8.2.0之间,且存在config API;二是攻击者必须知道具体的Core名称。此外,攻击者需要能够直接访问Solr控制台,并通过POST请求修改配置,将params.resource.loader.enabled设置为true。这些前提限制了漏洞的利用范围,但一旦满足,攻击者即可构造恶意请求执行系统命令。

复现过程中的常见问题

文章作者在复现时遇到了多个问题,包括版本不匹配、请求头错误以及请求方法错误。其中,版本问题可能源于目标服务器配置差异,而请求头错误可能是由于手动修改请求包导致格式不正确。作者还提到,请求方法错误在某些情况下可能反而表明漏洞存在,但具体原因尚不明确。这些经验提醒读者在复现时需仔细核对版本和请求格式。

安全建议与合规提醒

文章强调,提供的漏洞利用代码和脚本仅供研究学习,并提醒读者遵守《网络安全法》等相关法律法规。对于企业用户,建议及时升级Solr版本至8.2.0以上,并限制对Solr控制台的访问权限,避免暴露在公网。同时,应监控异常请求,尤其是针对/config接口的POST请求,以防范潜在攻击。

Q&A

Apache Solr 模板注入漏洞影响哪些版本?

Apache Solr 5.x 至 8.2.0 版本,且存在 config API。

Apache Solr 模板注入漏洞是如何产生的?

该漏洞产生有两个原因:一是攻击者可直接访问 Solr 控制台,通过发送 POST 请求修改节点配置;二是 Solr 默认集成 VelocityResponseWriter,其参数 params.resource.loader.enabled 默认为 false,当被设置为 true 时,允许用户通过请求参数指定资源加载,从而可构造恶意请求执行命令。

Apache Solr 模板注入漏洞的利用前提是什么?

攻击者需要知道 Solr 服务中 Core 的名称。

如何复现 Apache Solr 模板注入漏洞?

首先通过 fofa 等搜索 Solr 服务,然后构造 POST 请求到 /solr/{core}/config 修改配置,启用 VelocityResponseWriter 并设置 params.resource.loader.enabled 为 true,最后发送 GET 请求到 /solr/{core}/select 并携带恶意 velocity 模板参数执行命令。

复现 Apache Solr 模板注入漏洞时可能遇到哪些坑?

可能遇到版本不对、POST 请求包 header 不对、数据包请求方法不对等问题。

Apache Solr 模板注入漏洞有什么危害?

攻击者可以在服务器上执行任意系统命令,可能导致服务器被完全控制。

🏷️

标签

➡️

继续阅读