【漏洞预警】Apache Solr基于Velocity模板的远程命令执行漏洞
2019年10月末,白帽汇安全研究院发现网络上出现针对Apache Solr服务器的远程代码执行漏洞。该漏洞是由于Velocity模板存在注入所致(Velocity是一个基于Java的模板引擎,可让使用者通过模板语言引用Java中定义的对象)。攻击者在知道Solr服务器上Core名称后,先把params.resource.loader.enabled
设置为true(就可加载指定资源),再进行远程执行命令。
Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。——百度百科
概况
目前FOFA系统最新数据(一年内数据)显示全球范围内共有9155个Solr服务对外开放。美国使用数量最多,共有3427个,中国第二,共有1418个,德国第三,共有870个,爱尔兰第四,共有449台,法国第五,共有312个。
全球范围内Solr服务分布情况如下(仅为分布情况,非漏洞影响情况)
中国大陆地区浙江省使用数量最多,共有742个,北京市第二,共有263个,广东省第三,共有63个,江苏省第四,共有41个,上海市第五,共有28个。
危害等级
严重
漏洞复现
从目前情况来看,攻击者需要先获取Solr服务中的Core名称才能执行攻击,例如某个存在权限管控不严的Solr的服务器。我们可以从Logging
或Core admin
栏目得知Core名称。
然后通过POST请求把params.resource.loader.enabled
设置为True
,此时用户就可以加载指定资源,也就是构造一个能执行命令的恶意请求。
最后进行攻击,可直接从回显中看到命令执行结果。
漏洞影响
Solr最新版本8.2.0受到漏洞影响,版本小于8.2.0的Solr服务尚未测试。
漏洞POC
https://gist.githubusercontent.com/s00py/a1ba36a3689fa13759ff910e179fc133/raw/fae5e663ffac0e3996fd9dbb89438310719d347a/
CVE编号
暂无
修复建议
目前,官方尚未发布相关漏洞的安全补丁,请及时关注官方更新,网址:http://lucene.apache.org/solr/downloads.html