Apache Solr 任意文件读取漏洞详细解析

Apache Solr简介
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
PS:XML是一个文本文件,类似于HTML是一种标记语言。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
通俗说就是把软件里需要的功能打包好,写成一个函数,再次调用使用时就不用从头看一遍软件的源码和功能实现过程。
Apache Solr 任意文件读取漏洞说明
Apache-Solr任意文件读取漏洞漏洞,影响范围(Apache Solr version<= 8.8.1)攻击者可以在未授权的情况下读取目标服务器敏感文件和相关内容。

准备工作

Apache Solr <= 8.8.1
Java环境(Burpsuite和solr start)
Burpsuite

搭建环境:
http://archive.apache.org/dist/lucene/solr/8.8.0/
下载这个
在这里插入图片描述
然后解压到自定义目录中
在这里插入图片描述
大概是这个样子

Apache Solr环境启动

win10系统中
在bin目录下shift+右键 打开PowerShell窗口
在命令框中输入./solr start启动Apache服务

在这里插入图片描述
图示则启动成功

复现过程

本机环境下复现、首先要创建一个core
http://localhost:8983/solr/
在这里插入图片描述
创建任意命名的core,会产生报错,由于缺少配置文件。
前往目录solr-8.8.0\server\solr\configsets_default\conf,将该文件夹下的所有配置文件复制到要创建的core目录中

在这里插入图片描述

再次创建core,成功。

运行Burpsuite,开始抓包(共三个)

访问
http://localhost:8983/solr/admin/cores
这个目录下存储着solr的所有core的基本信息

将抓到的包发送到repeater->go
在这里插入图片描述

获得core的名字

得到core的名字就可以访问core的配置文件
配置文件在 http://localhost:8983/solr/429(core的名字)/config中

在这里插入图片描述
需将头部的GET改为POST
之后在抓到的包下写入
{“set-property”:{“requestDispatcher.requestParsers.enableRemoteStreaming”:true}}
启用远程流

最后
http://localhost:8983/solr/429(core名)/debug/dump
ps:切记以POST方式访问,得到content-type的回显,才能返回stream流
stream.url=file:///C://windows//win.ini
右键可以转换访问方式
在这里插入图片描述

在这里插入图片描述

访问到win.ini中的敏感信息

修复建议

1.开启身份验证/授权
2. 配置防火墙策略,确保Solr API(包括Admin UI)只有受信任的 IP和用户才能访问
3.禁止将Apache Solr放置在外网

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值