WebLogic反序列化漏洞CVE-2018-2893預警

漏洞概述

Oracle官方發佈了7月份的關鍵補丁更新CPU(Critical Patch Update),其中包含一個啟明星辰ADLab安全研究人員發現並通報給Oracle的高危遠程代碼執行漏洞(CVE-2018-2893),通過該漏洞攻擊者可以在未授權的情況下遠程執行任意代碼。該漏洞通過JRMP 協議利用RMI機制的缺陷達到執行任意反序列化代碼的目的。攻擊者可以在未授權的情況下將payload封裝在T3協議中,通過對T3協議中的payload進行反序列化,從而實現對存在漏洞的WebLogic組件進行遠程攻擊,執行任意代碼並可獲取目標系統的所有權限。

漏洞影響範圍

WebLogic 10.3.6.0

WebLogic 12.1.3.0

WebLogic 12.2.1.2

WebLogic 12.2.1.3

以上均為官方支持的版本。

基礎知識

  • T3協議

WebLogic Server 中的 RMI 通信使用 T3 協議在WebLogic Server和其他 Java程序(包括客戶端及其他 WebLogic Server 實例)間傳輸數據(序列化的類)。由於WebLogic的T3協議和Web協議共用同一個端口,因此只要能訪問WebLogic就可利用T3協議實現payload和目標服務器的通信。

  • JRMP協議

RMI目前使用Java遠程消息交換協議JRMP(Java Remote Messaging Protocol)進行通信。JRMP協議是專為Java的遠程對象制定的協議。

漏洞簡析

為了阻止惡意反序列化,WebLogic已經設置了8個黑名單。如下圖所示:

WebLogic反序列化漏洞CVE-2018-2893預警

並且對commons.collections這個包也做了限制。核心利用類調用readObject方法反序列化時都進行了檢查。如下圖所示:

WebLogic反序列化漏洞CVE-2018-2893預警

但經過啟明星辰ADLab安全研究人員深入研究分析後發現,JDK固有類中存在可被序列化並且在反序列化時可以調用RMI的類,使用該類可構造出繞過WebLogic黑名單以及commons.collections限制的payload,ADLab第一時間通報給Oracle官方並獲得相應的漏洞編號(CVE-2018-2893)。

解決方案

  • 關注Oracle官方CPU更新補丁
  • 控制T3協議的訪問

此漏洞產生於WebLogic的T3服務,因此可通過控制T3協議的訪問來臨時阻斷針對該漏洞的攻擊。當開放WebLogic控制檯端口(默認為7001端口)時,T3服務會默認開啟。

具體操作:

(1)進入WebLogic控制檯,在base_domain的配置頁面中,進入“安全”選項卡頁面,點擊“篩選器”,進入連接篩選器配置。

(2)在連接篩選器中輸入:weblogic.security.net.ConnectionFilterImpl,在連接篩選器規則中輸入:127.0.0.1 * * allow t3 t3s,0.0.0.0/0 * * deny t3 t3s(t3和t3s協議的所有端口只允許本地訪問)。

(3)保存後需重新啟動,規則方可生效。

WebLogic反序列化漏洞CVE-2018-2893預警

  • 升級到 jdk-8u20以上的版本


分享到:


相關文章: