[ImaginaryCTF 2021] – Fake Canary

Pada challenge ini, diberikan sebuah file ELF-64bit bernama fake_canary.

Mari kita check halangan apa saja yang harus kita lewati.

Ternyata hanya NX saja. Mari kita coba jalankan dulu.

Ternyata, input ini saja yang diminta. Yasudah, mari kita coba buka programnya di ghidra.

Disini terlihat ada function main. Disini terlihat, bahwa kita bisa memasukkan input sebanyak 40 karakter. Tetapi, disini kita tidak mendapat apa-apa. Coba kita cari function lain.

Ternyata ada function win, yang bisa mendapatkan bash. Tetapi disini masalahnya terdapat di function main. Karena kita akan mengakses function win tersebut, pasti kita akan melakukan overwrite value menjadi address win tersebut. Tetapi, local_10 tersebut terdapat dibawah stack local_38, yang pasti nanti akan ter-overwrite valuenya. Nah, value ini tidak boleh kita ubah, sehingga kita harus meng-assign value local_10 tersebut lagi, baru kita panggil function win-nya. Sehingga, kita bisa menulis script simple, seperti ini.

Variable loc10 ditambahkan padding belakang agar kita bisa memenuhi RBP function main ini, sehingga kita nanti bisa mengakses function win.

Mari kita jalankan scriptnya~.

ictf{m4ke_y0ur_canaries_r4ndom_f492b211}

Leave a Reply

Your email address will not be published. Required fields are marked *