Social Icons

Cara mendapatkan bitcoin gratis

Thursday 10 March 2016

[Reversing] CTF MEH reverse1

Soal ini di dapat dari CTF(Capture The Flag) yang diselenggarakan oleh MEH(Makasar Ethical Hacking),Sebenernya sih ctf nya udah lama, tapi daripada write up nya di diemin terus di pc, ya mending di post aja di blog, itung-itung buat arsip 😀
Nah di soal ini kita di kasih satu file ELF buat kita reverse, jadi si elf ini bakal nge print key nya jika password yang kita masukin sama dengan password yang telah kita tentukan, simple.
Buat yang butuh soalnya buat latihan bisa check di download di : DISINI
Pertama yang saya lakukan adalah check file itu sendiri (Pas pertama kan gak tau ini file apaan) :
CTF MEH write up
Yarp, kita dapet, ternyata file ELF 32 bit, Nah sesudah itu, tadinya saya mau coba static analysis dulu, tapi karena kayaknya programnya simple(sebenernya males sih) jadi langsung aja buka GDB terus debugging.
ini hasil dari disassemble fungsi main dari file nya :
CTF MEH writeup
3
Nah dari situ udah keliatan langsung, di address 0x0804851f ada pembandingan(cmp) dan di bawahnya ada instruksi jne(Jump if not equal).
4
di sini kita udah tau bahwa password yang kita masukan udah ada di register eax, kemudian di bandingkan dengan variable $0x111a7, kalo tidak sama(password salah) maka instruksi selanjutnya bakal loncat(jumping) ke address 0x804853d.
Disini ada dua cara supaya kita bisa dapat key nya tanpa tau password yang sebenarnya, yaitu :
  1. Kita bisa overwrite isi dari register eax dengan nilai dari variable tadi ketika proses pembandingan
  2. Kita bisa melakukan jumping langsung melewati instruksi jne dengan mengoverwrite nilai dari register eip dengan address sesudah instruksi  jne.
Disini, saya menggunakan cara yang kedua.
Hal yang pertama saya lakukan adalah memasang breakpoint di address 0x0804851f supaya program bisa berhenti pada address itu.
5
Kita bakal diminta password terlebih dahulu(ada pemanggilan fungsi scanf) itu bisa diisi dengan nilai apapun.
nah dari sini kita bisa melakukan jumping untuk melewati instruksi cmp dan jne dengan cara mengoverwrite nilai dari register eip.
6
Setelah itu kita bisa melanjutkan program dengan command c pada gdb.
7
Program akan memberikan kita Flagnya ^_^ tanpa harus mengetahui password nya.

No comments:

Post a Comment

jago Photoshop