Pemintas filter SSRF

May 07 2023
Halo, nama saya W1C3 dan hari ini, saya akan menjelaskan cara mendapatkan akses baca file arbitrer melalui Server-Side Request Forgery (SSRF) dengan melewati filter. Tantangan ini dikembangkan untuk WaniCTF.

Halo, nama saya W1C3 dan hari ini, saya akan menjelaskan cara mendapatkan akses baca file arbitrer melalui Server-Side Request Forgery (SSRF) dengan melewati filter. Tantangan ini dikembangkan untuk WaniCTF .

Nama

Tangkapan layar

Keterangan

Aplikasi yang mengambil tangkapan layar dari situs web favorit Anda.

Panduan

Setelah mengakses situs web, dapat diamati bahwa ini adalah halaman yang sangat sederhana. Fungsi satu-satunya adalah menerima URL, mengakses URL menggunakan browser web, dan mengambil tangkapan layar.

Aplikasi schreenshot sederhana

Dalam tantangan ini, karena kode sumber disediakan, kami dapat melihat bahwa ia melakukan pemeriksaan yang perlu kami lewati, karena " HTTP " harus disertakan dalam permintaan kami dan " FILE " tidak dapat disertakan.

Tinjauan Kode Server

Untuk memverifikasi ini, kami akan mencoba membaca file /etc/passwd , tetapi tidak berhasil.

Mencoba mengidentifikasi SSRF

Seperti yang kami sebutkan sebelumnya, filter yang perlu kita lewati harus berisi string " http " atau tidak menyertakan string " file ".

Mengidentifikasi SSRF

Sekarang kita berada di langkah sebelumnya, mengetahui bahwa SSRF ada dan memahami filter yang perlu kita lewati, kita akan menambahkan " File:// " ke awal dan " ../../../../flag. txt ” atau “ ../../../../etc/passwd ” sampai akhir. Dengan ini, kita akan dapat membaca file “flag.txt” untuk menyelesaikan tantangan kita.

CATATAN : File harus berisi setidaknya satu huruf besar untuk melewati filter

Baca File Sewenang-wenang

Untuk mempermudah, kami akan menghapus beberapa data dari permintaan. Dalam hal ini, payload kita akan terlihat seperti ini:

File:///http/../../flag.txt

Kesimpulan

Dalam tantangan ini, kami telah mendemonstrasikan cara mem-bypass filter sederhana yang mencoba mencegah SSRF dengan melarang protokol " file " dan memerlukan protokol " http ". Dengan hati-hati membuat permintaan kami dengan huruf kapital di parameter " file " dan menggunakan protokol " File:// ", kami dapat membaca file arbitrer di server.

Terima kasih telah membaca postingan ini. Nantikan lebih banyak posting yang akan datang di blog, dan jangan ragu untuk mengikuti saya di media sosial untuk pembaruan. Juga, harap perhatikan bahwa GitHub pribadi saya akan memiliki postingan yang diterbitkan dalam bahasa Spanyol. Selamat tinggal!

Github: J-W1C3

Twitter: Josewice7

Telegram: W1C3Post

Bergabunglah dengan saluran Telegram saya untuk tetap mendapat informasi terbaru saat posting baru diterbitkan.