Pada challenge ini diberikan file executable ELF 64 bit,
dengan kondisi stripped
Setelah
menjalankan file ini sepertinya aplikasi ini mengharuskan kita mencocokkan angka
3,1,3,3,7 dengan inputan yang kita lakukan.
Karena filenya stripped, maka
langsung saja saya lakukan metode static analysis dengan melakukan disassembly
untuk mencari alamat yang pas untuk menentukan titik breakpoint. Jadi saya
tidak perlu repot-repot mencocokan nilai yang digenerate secara random.
Disini saya menggunakan IDA Pro, Ditemukan alamat 0x4010f9.
Alamat ini merupakan kondisi
ketika inputan tidak sesuai dengan nilai yang diharapkan. Alamat ini nantinya
akan saya gunakan sebagai acuan penentuan breakpoint pada proses debugging
nantinya.
kemudian saya menemukan alamat 4010DF. Dialamat tersebut flag nantinya akan dipanggil, karena
disana adanya string yang merupakan keterangan ketika flag keluar .
Setelah mendapatkan alamat
tersebut kemudian saya melakukan proses debugging menggunakan GDB di linux.
Menentukan breakpoint dialamat 0x4010f9.
b *0x4010f9
Kemudian melakukan pengesetan
pada register RIP di alamat pemanggilan flag tadi, di 4010DF ,
set $rip=0x4010df
jadi ketika aplikasi dieksekusi
selanjutnya maka alamat ini akan
dieksekusi yang tidak lain tempat dimana flagnya berada.
Flag: ASIS{1fc1089e328eaf737c882ca0b10fcfe6}
maaf sebelumnya , apakah file ini masih ada?
ReplyDelete