let him cook
Last updated
Last updated
Kita diberikan sebuah website yang akan menampilkan page resep makanan berdasarkan jenis makanan yang diklik. Untuk mengakses page, URL-nya kira-kira berbentuk seperti berikut.
Sekedar untuk mencoba, jika "coto" kita ganti dengan nama file yang tidak ada, maka akan terjadi error pada kode PHP-nya.
Sementara itu, error (atau tepatnya blokir) akan terjadi jika kita tidak menggunakan recipes/
atau menggunakan titik "." untuk melakukan directory traversal.
Jadi, bisa disimpulkan bahwa aturan URL-nya adalah:
file yang dirujuk harus benar-benar ada
harus diawali dengan recipes/
tidak boleh ada titik "."
Sebagai patokan, kita akan mencoba membaca file etc/passwd
. Kita bisa membiarkan awalan recipes/
, lalu menambahkan directory traversal di mana karakter titik "." di-encode URL sebanyak dua kali (%252e). Terakhir, jangan lupa tambahkan #
untuk mengabaikan karakter setelah payload (jika ada penambahan karakter seperti ekstensi oleh kode PHP). Maka dari itu, payloadnya adalah sebagai berikut.
Nah sekarang, coba saja akses flag.txt
yang (kemungkinan) terletak di root.
Flag: RECURSION{t3s_omb4k}
Dalam CTF yang mengangkat topik LFI, biasanya patokannya adalah membaca file etc/passwd
terlebih dahulu, lalu cari flagnya. Letak flag biasanya di root /
, home ~
, atau directory yang sama dengan file index. Nama file dari flag bisa flag.txt
, secret.txt
, atau bahkan yang lainnya.
Menambahkan #
di akhir payload saya pelajari dari .