天天看點

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

作者:希潭實驗室ABC123

Part1前言

年前在一次攻防比賽過程中,遇到了一個9.x版本的weblogic中間件,是非常老版本的Weblogic了,現有的各種漏洞利用工具都沒能拿下權限,考慮到之前也曾經遇到過好幾次了,于是研究了一整天,總算解決了這個遺留的技術問題。

Part2解決問題過程

1安裝weblogic 9.x版本

首先安裝weblogic9.x版本,這個過程就不叙述了。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123
第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

使用T3協定發包後,傳回weblogic版本号是9.2.0.0

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

接下來看一下weblogic目錄自帶的jdk版本,發現是1.5(幾乎是20年前的老版本了)。至此初步判斷工具利用失敗的原因是:反序列化利用工具的exp在JDK1.6以上版本編譯,進而不支援jdk 1.5環境,後續發現原因沒這麼簡單。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

接下來看一下weblogic目錄下,存在哪些具有反序列化漏洞的jar包:

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

接下來改造一下老外的ysoserial代碼,使其在JDK1.5環境下編譯,結果遇到了好幾個坑。

第一個坑,idea在jdk1.5支援問題

使用Intellij Idea加載ysoserial的代碼,将JDK版本更改為1.5,發現idea新版本不支援jdk1.5環境,沒法調試代碼。

沒辦法,從idea的官網一頓搜尋,找到了一個老版本的idea 11,總算是能支援jdk1.5環境了。

idea11以jdk1.5導入ysoserial後,報一大堆錯誤,于是将幾個必備的依賴jar包替換成較低版本的,以備可以相容jdk1.5環境。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

第2個坑,permit-reflect元件JDK1.5相容問題

按照前面的步驟替換完低版本jar包後,permit-reflect元件遇到了麻煩,我下載下傳了0.1到0.4版本都不支援JDK1.5。。。

後來找到了解決辦法:下載下傳permit-reflect的源碼,以JDK1.5環境導入,把報錯的代碼都給注釋掉,然後進行小規模代碼修複,将修複好的代碼直接放到ysoserial工程裡面,這下不報錯了。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

第3個坑 CC鍊不适用于JDK1.5

weblogic低版本應該是存在CC鍊的反序列化漏洞的,本地嘗試了各種CC鍊,發現在JDK1.5下是沒法彈電腦的。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

Jdk7u21最終解決問題

于是把目光放在Jdk7u21這個鍊上(先前以為Jdk7u21是不支援JDK1.5的),以JDK1.5環境導入,本地反序列化環境測試,發現是可以彈出電腦的!

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

接下來使用了之前從github上下載下傳的T3協定發包代碼,将上述生成的資料檔案發包出去。

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

發現weblogic9.x成功彈出電腦

第1篇:weblogic9.x在JDK1.5下T3反序列化漏洞利用方法 by:ABC_123

Part3總結

  1. Jdk7u21利用鍊可用于JDK1.5,但是必須以JDK1.5環境編譯。
  2. Weblogic9.x預設依賴于JDK1.5。
  3. CC鍊貌似不能用于JDK1.5。
  4. permit-reflect元件改源碼,然後導入ysoserial中,因為官網的jar包版本不支援JDK1.5。
  5. ysoserial依賴包盡量選用最低版本的jar包,否則JDK1.5不支援。

網絡安全abc123

專注于紅隊、藍隊技術分享,每周一篇