Monday, May 11, 2015

ASIS CTF 2015 - Keylead (Reverse 150)

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}

1 comment: