Lab1: Basic SSRF against the local server
https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost
進入以上網頁後按access the lab進入以下畫面:
點上圖紅圈處
按check stock,記得在那之前burp需要intercept on:
上圖紅箭頭所指的地方正是點下去以後,可以看到目前剩餘數量的網址。
可以直接把這一串改成題目提示的網址如上圖,按多次forward後出現以畫面:
如果直接點delete會失敗如下圖,因為不是用管理員權限操作:
所以要看看這連結的url長怎樣,在連結上按右鍵,以複製連結網址:
可以發現後面admin後面接著/delete?username=wiener
https://0acb007f032b3cf9808d3f8000720058.web-security-academy.net/admin/delete?username=wiener
所以剛剛的步驟再來一次,這一次把網址改成完整的如上圖1即可解題。
Lab2: Basic SSRF against another back-end system
https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-backend-system
跟上一題不一樣的是,這一次不知道IP的最後一個數字,所以需要用到intruder。
進入以上網頁後按access the lab進入以下畫面:
點上圖紅圈處
按check stock,記得在那之前burp需要intercept on,並按右鍵後再按下圖紅圈處:
再把這串送入intruder:
已知ip最後一數字未知,所以先反藍後按下圖2:
接下來設定Payloads,照下圖順序1,2設定,最後按3:
看哪一個status是200,看來是182,所以IP就是192.168.0.182:
再回到repeater試驗182是否正確:
回proxy,輸入完整網址後點下圖2,一直點:
按下上圖2(就是forward)後,再繼續一直按forward直到不能按,順便重新整理網頁再按forward,即可解題。
Lab3: SSRF with blacklist-based input filter
https://portswigger.net/web-security/ssrf/lab-ssrf-with-blacklist-filter
進入以上網頁後按access the lab進入以下畫面:
點上圖紅圈處,記得burp需要intercept on:
按check stock:
可以看到攔截到如下圖:
試試看用老招:
http://localhost/admin/delete?username=carlos
但可以發現會有錯誤:
為了測試,把這按右鍵送到repeater:
測試老招時。會發現下圖紅圈,說是被block。
參考以下網誌:
https://pravinponnusamy.medium.com/ssrf-payloads-f09b2a86a8b4
簡單來說,把localhost改成127.1,並把admin給編碼成url的百分比編碼即可,而且還要編兩次,如下圖所示:
所以payload如下:
http://127.1/%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65
按forward送出去後,網頁下方出現以下:
再來一次:
重新整理網頁,並按forward直到出現以下畫面:
刪除carlos的payload:
http://127.1/%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65/delete?username=carlos
Lab4: SSRF with filter bypass via open redirection vulnerability
https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection
進入以上網頁後按access the lab進入以下畫面:
點上圖紅圈處:
https://0a29006c03736c0b826f38d60075008e.web-security-academy.net/product?productId=1
按Next product,記得在那之前burp需要intercept on:
上圖path後面可以接別的網址,這就是open redirection vulnerability:
再次用老招,path後面接:
http://192.168.0.12:8080/admin/delete?username=carlos
但沒有用,不過概念就是這樣。
把http改成https也沒用。
Reference
https://blog.51cto.com/u_16097306/6337330
https://systemweakness.com/portswigger-ssrf-labs-19b673683195