您好,登錄后才能下訂單哦!
這篇文章給大家介紹Apache Solr 未授權(quán)上傳RCE漏洞CVE-2020-13957的原理分析與驗(yàn)證是怎么樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
Apache Solr 發(fā)布公告,舊版本的ConfigSet API 中存在未授權(quán)上傳漏洞風(fēng)險(xiǎn),被利用可能導(dǎo)致 RCE (遠(yuǎn)程代碼執(zhí)行)。
受影響的版本:
Apache Solr6.6.0 -6.6.5
Apache Solr7.0.0 -7.7.3
Apache Solr8.0.0 -8.6.2
安全專家建議用戶盡快升級(jí)到安全版本,以解決風(fēng)險(xiǎn)。
Solr 可運(yùn)行在 SolrCloud(分布式集群模式)和 StandaloneServer(獨(dú)立服務(wù)器模式)兩種模式下,當(dāng)以 SolrCloud 模式運(yùn)行時(shí),可通過(guò)Configset API 操作 Configsets,包括創(chuàng)建、刪除等。
對(duì)于通過(guò) Configset API 執(zhí)行 UPLOAD 時(shí),如果啟用了身份驗(yàn)證(默認(rèn)未開(kāi)啟),且該請(qǐng)求通過(guò)了身份驗(yàn)證,Solr 會(huì)為該 configset 的設(shè)置“trusted”,否則該配置集不會(huì)被信任,不被信任的 configset 無(wú)法創(chuàng)建collection。
但當(dāng)攻擊者通過(guò) UPLOAD 上傳 configset 后,再基于此configsetCREATE configset 時(shí),Solr 不會(huì)為這個(gè)新的 configset 進(jìn)行信任檢查,導(dǎo)致可以使用未經(jīng)信任檢查的新 configset 創(chuàng)建 collection。
一、在8.6.2版本中進(jìn)行攻擊嘗試
1、Debug 運(yùn)行8.6.2版本,默認(rèn)開(kāi)啟在8983端口
2、使用樣例構(gòu)造上傳的 configset
3、上傳過(guò)程中觸發(fā)斷點(diǎn)
可以看到,正確識(shí)別到 configset 不值得信任(缺少身份認(rèn)證)
Trust 值為 false
4、 使用上傳的 configset 為母版,創(chuàng)建新的 configset
http://localhost:8983/solr/admin/configs?action=CREATE&name=evilconfigset4&baseConfigSet=2testConfigSet&configSetProp.immutable=false&wt=xml&omitHeader=true
無(wú)返回信息,未觸發(fā) debug
5、 在 web 控制臺(tái)可以查看到,創(chuàng)建 evilconfigset4 成功
6、 使用直接上傳的 configset(例如2testconfigset)創(chuàng)建 collection 會(huì)失敗
7、 使用以 2testconfigset 為母版創(chuàng)建的 evilconfigset4,創(chuàng)建collection,可以成功
8、 后續(xù)可以利用創(chuàng)建的 collection 的內(nèi)容,調(diào)用solr組件進(jìn)行遠(yuǎn)程代碼執(zhí)行(這里不做分析)
二、 8.6.3 版本修復(fù)分析
1、 Debug 運(yùn)行 8.6.3 版本
2、進(jìn)行攻擊嘗試,類似 8.6.2 版本,上傳 configset
3、觸發(fā)斷點(diǎn)
正確識(shí)別為不可信 configset
4、 使用上傳的 2testconfigset 為母版,創(chuàng)建新的 configset
http://localhost:8983/solr/admin/configs?action=CREATE&name=evilconfigset4&baseConfigSet=2testConfigSet&configSetProp.immutable=false&wt=xml&omitHeader=true
5、觸發(fā)斷點(diǎn)
正確識(shí)別為不可信 configset(注意,在8.6.2版本中,以已上傳的 configset 為母版創(chuàng)建新 configset 時(shí),并不會(huì)觸發(fā)檢查)
6、同樣可以創(chuàng)建 configset 成功
7、 在 web 控制臺(tái),分別使用直接上傳的 configset(2testconfigset)以及創(chuàng)建的(evilconfigset4)新建 collection
2testconfigset:
Evilconfigset4 :
均創(chuàng)建失敗。
關(guān)于Apache Solr 未授權(quán)上傳RCE漏洞CVE-2020-13957的原理分析與驗(yàn)證是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。