漏洞原理
SSRF是服務器請求偽造,web應用程式提供從其他服務器獲取資料的功能,使用指定用戶的url可以下載、查看一下資料,如果沒有對目標地址做過濾與限制,攻擊者就可以利用這臺服務器去攻擊與他處于同一內網的其他服務器,
漏洞危害
1. 掃描內網設備埠
2. 內網web應用指紋識別
3. 讀取本地檔案
4. 攻擊內網網站
漏洞檢測
當我們發現一個資料包中有引數是一個url地址,或者是重定向到其他地址時,就有可能存在SSRF漏洞,我們可以將url地址改為本地127.0.0.1或者內網的地址進行嘗試,
漏洞利用
1. 針對服務器本身的ssrf
應用程式允許來自本地計算機的任何用戶在不登錄的情況下進行管理訪問,也是為了災難恢復的目的,
2. 針對其他后端系統的ssrf
應用程式服務器能夠與用戶無法直接訪問的其他后端系統進行互動,就是與這臺服務器處于同一內網的其他服務器,同一內網環境下,無需身份驗證就可以訪問其他系統的一些功能,
3. 盲注SSRF
我們可以利用存在漏洞的服務器,向與他處于同一內網的其他服務器發送http請求時,但是請求并沒有回傳到前端頁面,這時我們就要盲SSRF注入,
盲注的利用還是要利用OOB,帶外通道技術:讓存在漏洞的設備向我們的vps發送http請求,在我們的vps中根據訪問日志資訊,就可以看到我們需要的資料,
繞過方法
1. 繞過黑名單
應用程式阻止包含127.0.0.1和localhost的主機名,我們可以將主機名轉換為十進制或者十六進制,或者利用大小寫、url編碼等來繞過被阻止的字串,
127.0.0.1 可以替換為:2130706433、017700000001或127.1
2. 繞過白名單
應用程式只允許輸入白名單中的值,利用url決議不一致來繞過,
expected-host是攻擊者要攻擊的主機,
evil-host是正常能夠訪問資料的主機名
使用@
https://expected-host@evil-host
使用#
https://evil-host#expected-host
3. 利用后端HTTP請求API支持重定向繞過
用戶提交的url會經過應用程式嚴格驗證,不會導致ssrf的發生,如果用于發出后端HTTP請求的API支持重定向,攻擊者就可以構造滿足嚴格驗證的url,在重定向位置進行攻擊,
前面url是經過嚴格過濾的,但是重定向地址沒有過濾,
stockApi=http://weliketoshop.net/product/nextProduct?currentProductId=6&path=http://192.168.0.68/admin
漏洞防御
1. 限制協議:
僅允許http或者https請求
2. 限制目標IP地址:
僅允許訪問正常用戶訪問的服務地址,
3. 限制埠:
限制請求的埠為常用的埠:80、443、8080等埠
4. 過濾回傳資訊和統一錯誤頁面:
避免攻擊者可以通過錯誤資訊來判斷遠端服務器的埠開啟狀態,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/447047.html
標籤:其他
上一篇:詹金斯服務器--httpListenAddress=127.0.0.1不作業
下一篇:Java案例——字串中的資料排序
