咨詢服務熱線

400-6446-808

創安實驗室專欄
您的當前位置:首頁 > 創安實驗室專欄
CVE-2020-14882分(fēn)析
發布者:創信華通  發布時間:2023-02-03  浏覽量:253次











古語有雲:“學如逆水行舟,不進則退。”面對如今随時都在變化的網絡安全環境更是如此。爲此,創信華通微信公衆号特開(kāi)設“創安實驗室專欄”,以記錄創信華通創安實驗室在技術上的探索,加強同行間的交流,相互學習,共同進步。


+

+

CVE-2020-14882分(fēn)析

漏洞描述

WebLogic Server是美國Oracle公司的主要産品之一(yī),其主要用于開(kāi)發、集成、部署和管理大(dà)型分(fēn)布式Web應用、網絡應用和數據庫應用,是商(shāng)業市場上主要的Java(J2EE)應用服務器軟件之一(yī)。遠程攻擊者可以通過發送惡意的HTTP GET 請求。成功利用此漏洞的攻擊者可在未經身份驗證的情況下(xià)控制 WebLogic Server Console ,并執行任意代碼。

影響範圍如下(xià)

Oracle Weblogic Server 10.3.6.0.0

Oracle Weblogic Server 12.1.3.0.0

Oracle Weblogic Server 12.2.1.3.0

Oracle Weblogic Server 12.2.1.4.0

Oracle Weblogic Server 14.1.1.0.0

漏洞原理

由于在權限校驗過程中(zhōng)處置不到,可通過訪問靜态資(zī)源并且配合目錄穿越和url二次編碼繞過權限驗證。并當請求中(zhōng)存在_nfpb=true時,最終會調用到 BreadcrumbBacking#init ,而這裏會獲取請求中(zhōng)的 handle 參數,調用 getHandle 方法便可執行惡意操作。

攻擊流程

0x00 構造url

構造url:/console/css/%252e%252e%252fconsole.portal,便可繞過權限驗證。

0x01 構造惡意參數 

構造惡意參數:_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('calc.exe');");,進入調用getHandle 方法邏輯執行惡意操作。

0x02 複現步驟

首先在進行路徑權限檢驗會進入weblogic.servlet.internal.WebAppServletContext#execute的execute方法中(zhōng),調用securedExecute()

文件位于\wlserver\modules

跟進securedExecute,會調用doSecuredExecute,繼續跟進

進入checkAccess進行權限校驗

當我(wǒ)們請求的路徑爲/console/console.portal時,checkAllResources爲false

跟進getConstraint

比較我(wǒ)們的relURI是否匹配我(wǒ)們matchMap中(zhōng)的路徑,并判斷rcForAllMethods和rcForOneMethod是否爲null

回到checkAccess,如果這裏是原來的/console.portal時,到這就結束了

當我(wǒ)們訪問/console/css/%252e%252e%252fconsole.portal,則會繼續判斷resourceConstraint及後續的isAuthorized,并進入checkAccess

跟進checkUserPerm

跟進hasPermission,當我(wǒ)們這裏使用靜态資(zī)源路徑時,unrestrict值就爲true

進入weblogic.servlet.AsyncInitServlet#service

當url中(zhōng)沒有“;”便會調用super.service

繼續跟進super.service

最終進入doPost,并調用createUIContext

此時我(wǒ)們傳入的url完成一(yī)次解碼

跟進getTree,再一(yī)次進行url解碼

之後進入init

檢查參數中(zhōng)是否有handle參數

最後進入HandleFactory.getHandle(handleStr)

此時傳進來的handleStr會在這裏被拆成兩部分(fēn),一(yī)個作爲被實例化的類,另一(yī)個作爲該類的構造函數參數及實例化

構造了惡意參數,觸發rce

攻擊exp:https://github.com/GGyao/CVE-2020-14882_ALL

臨時解決方案

1、關閉後台/console/console.portal的訪問權限。

2、修改後台默認地址。

更新補丁

https://www.oracle.com/security-alerts/cpuapr2020.html

E·N·D


本文由創信華通創安實驗室編輯。

本文僅限于個人學習和技術研究,由于傳播、利用此文所提供的信息而造成刑事案件、非授權攻擊等違法行爲,均由使用者本人負責,本單位不爲此承擔任何責任。創安攻防實驗室擁有對此文章的修改和解釋權,如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部内容。


如有侵權,請聯系後台。




創安實驗室

創信華通創安實驗室,是天慕卓越(深圳)網絡科技有限公司旗下(xià)的技術研究團隊,成立于2021年9月,主要研究紅藍(lán)對抗、重大(dà)安全保障、應急響應等方向。

創安攻防實驗室圓滿完成了多次公安舉辦的重要網絡安全保障和攻防演習活動,并積極參加各類網絡安全競賽,屢獲殊榮。

創安攻防實驗室秉承創信華通的發展理念,緻力打造國内一(yī)流網絡安全團隊。