# SSRF Lab5 本題 SSRF + Filter Bypass via Open Redirect。 概要: - 直接把 stockApi 指向內網管理介面(`http://192.168.0.12:8080/admin`)會被擋(限制只能訪問本地應用)。 - 但系統有個open redirect」漏洞,可以利用它間接跳轉到內網管理頁。 - 必須先找到 open redirect 的 URL,再用它繞過限制,讓 SSRF 去請求內網 一樣進入網站攔截請求。 ![image](https://hackmd.io/_uploads/B1Fg-8QSeg.png) ![image](https://hackmd.io/_uploads/rJdsDIQrle.png) 這裡攔截「下一個商品」的請求,會發現 `path`,待會可以用到參數 `path`。 :::info ### 為什麼是 `path`? - 是應用程式裡可控的重定向點 `/product/nextProduct?path=... `這個路徑參數會被服務器用來產生一個重定向(HTTP 3xx 回應,Location header 就是 path 裡的值)。 - open redirect 漏洞本質就是「信任並重定向用戶輸入的 URL」 這代表只要你在 path 裡放想去的 URL,服務器就會幫你跳過去,導致任意網址跳轉。 - 利用這個漏洞作為 SSRF 路徑繞過防禦,SSRF 功能限制不能直接請求內網 IP 或外部 URL,但你可以指向本地的 open redirect 路徑(合法範圍內),然後再由它幫你跳轉到內網。 ::: 所以我們效仿「下一個商品」的路徑參數 `path` ,加上我們的目的位置。 ``` http://192.168.0.12:8080/admin ``` ![image](https://hackmd.io/_uploads/rk0oF8QSxe.png) 這樣 server 會先請求本地 open redirect 頁面,然後被導向到內網 admin 頁,當然我們可以連接刪除使用者的連結。 ``` http://192.168.0.12:8080/admin/delete?username=carlos ``` ![image](https://hackmd.io/_uploads/HJ-a9LmSgg.png) ![image](https://hackmd.io/_uploads/B1apcLXSxe.png) ---