SSRF with filter bypass via open redirection vulnerability
Link Portswigger : https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection
Description :
This lab has a stock check feature which fetches data from an internal system.
To solve the lab, change the stock check URL to access the admin interface at http://192.168.0.12:8080/admin and delete the user carlos.
The stock checker has been restricted to only access the local application, so you will need to find an open redirect affecting the application first.
Proof of concept:
Cek seluruh HTTP Traffic pada seluruh fitur


Pada fitur
check stock, sistem target memanggil API via parameterstockAPI
Pada parameter ini terjadi request yang memanggil API
/product/stock/check?productId=&storeId=. Pada parameter ini, terdapat kemungkinan terjadinya kerentanan SSRF. Pertama-tama coba untuk melakukan pengecekan eksternal SSRF
Ketika mencoba untuk melakukan SSRF eksternal, pada parameter tersebut memiliki URL validation yang dimana sistem akan membaca jika yang diinputkan bukan dari host URL, sistem akan menolak request tersebut. Maka dari itu, kita tidak bisa melakukannya (SSRF Eksternal). Mari lakukan analisa kembali, pada traffic SSRF, terdapat API lainnya. API tersebut dipanggil ketika pengguna melakukan request
"Next Product"
Lakukan analisa API tersebut, dari hasil analisa, endpoint atau API tersebut rentan terhadap kerentanan Open Redirect. Sebagai contoh, ketika nilai pada parameter tersebut diubah menjadi URL eksternal, sistem akan melakukan redirect ke URL tersebut

Coba untuk mengkombinasikan kerentanan tersebut, yaitu kerentanan SSRF dan Open Redirect. Copy API
Next Productuntuk disimpan atau diisi pada parameterstockAPI
Lakukan URL encode pada nilai parameter tersebut. Jika sudah, kirim kembali request tersebut dan response tersebut akan berhasil

Ini terjadi karena sistem membaca inputan yang valid pada parameter
stockAPI, karena nilainya diawali "/", yang artinya menunjunkan ke host target domain/URLCoba untuk melakukan SSRF access internal IP menggunakan parameter path pada API
/product/NextProduct. Seperti yang telah diketahui, clue untuk lab ini adalahhttp://192.168.0.12:8080/admin

Seperti yang telah dijelaskan pada deksripsi lab, kita harus melakukan penghapusan akun carlos untuk menyelesaikan tantangan lab ini. Untuk itu, manfaatkan kerentanan SSRF via Open Redirect kembali dengan internal URL/Endpoint target seperti berikut
http://192.168.0.12:8080/admin/delete?username=carlositu didapati dari hasil menganalisa hasil response di tahapan sebelumnya

Thanks, Stay Ethical & Happy Hacking! 🍻
Last updated