SharifCTF 2016 - Camera Model
Challenge Misc SharifCTF 2016 diberikan file bernama Image_Viewer yang akan menampilkan sebuah foto dan model kamera yang digunakan untuk mengambil foto tersebut merupakan flag.
root@kali:~/Desktop/SU CTF# file Image_Viewer Image_Viewer: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=c3aaafe49fbcc6a7a2adbcdf4f3c2dd125a3dd32, not stripped Proof Of Concept Saya menggunakan binwalk untuk melakukan signature scan
root@kali:~/Desktop/SU CTF# binwalk Image_Viewer DECIMAL HEXADECIMAL DESCRIPTION ——————————————————————————– 0 0x0 ELF, 64-bit LSB executable, AMD x86-64, version 1 (SYSV) 5432 0x1538 Zlib compressed data, best compression Tidak terdapat signature file gambar, tapi saya mencoba mengekstrack gambar tersebut dengan option -e pada binwalk
SharifCTF 2016 - Getit
Pada challenge RE ShariftCTF 2016 diberikan file elf binnary bernama getit, yang informasi nya seperti dibawah ini
root@kali:~/Desktop/SU CTF/RE# file getit getit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=e389cd7a4b9272ba80f85d7eb604176f6106c61e, not stripped Proof Of Concept Saya menggunakan gdb untuk melakukan debugging
root@kali:~/Desktop/SU CTF/RE# gdb -q getit Reading symbols from getit…(no debugging symbols found)…done. (gdb) set disassembly-flavor intel (gdb) disass main Dump of assembler code for function main: — snip — 0x000000000040080d <+183>: call 0x400620 <fprintf@plt> 0x0000000000400812 <+188>: mov DWORD PTR [rbp-0x3c],0x0 0x0000000000400819 <+195>: mov eax,DWORD PTR [rbp-0x3c] 0x000000000040081c <+198>: movsxd rbx,eax 0x000000000040081f <+201>: mov edi,0x6010e0 0x0000000000400824 <+206>: call 0x4005e0 <strlen@plt> 0x0000000000400829 <+211>: cmp rbx,rax 0x000000000040082c <+214>: jae 0x4008b5 <main+351> — snip — Ditemukan bagian menarik pada offset 0x000000000040081f at +201, dimana terdapat “sesuatu” yang disalin ke register edi.
SharifCTF 2016 - SCrack
Challenge RE SharifCTF 2016 SCrack berupa file elf binnary 64bit yang akan melakukan validasi key
root@kali:~/Desktop/SU CTF/RE# file SCrack SCrack: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=d011afc29443bbb3ea2c72ef5ac15f8dc278397a, not stripped root@kali:~/Desktop/SU CTF/RE# ./SCrack Enter the valid key! asasasasasas Invalid Key! :( Saat mencoba menggunakan ltrace terdapat output Dont trace me! dan percobaan disassembly menggunakan gdb ditemukan ptrace yang digunakan sebagai anti-debugging technique
TAMUCTF 2018 - Pwning
Pwn1 Diberikan sebuah file binary dengan informasi sebagai berikut
Percobaan debugging menggunakan gdb
$ gdb -q pwn1 Reading symbols from pwn1…(no debugging symbols found)…done. gdb-peda $ pdisass main Berikut hasil disassable fungsi main
0x080485cf <+29>: call 0x8048410 <setvbuf@plt> 0x080485d4 <+34>: add esp,0x10 0x080485d7 <+37>: sub esp,0xc 0x080485da <+40>: push 0x8048700 0x080485df <+45>: call 0x80483f0 <puts@plt> 0x080485e4 <+50>: add esp,0x10 0x080485e7 <+53>: sub esp,0xc 0x080485ea <+56>: push 0x8048720 0x080485ef <+61>: call 0x80483f0 <puts@plt> 0x080485f4 <+66>: add esp,0x10 0x080485f7 <+69>: sub esp,0xc 0x080485fa <+72>: push 0x804875f 0x080485ff <+77>: call 0x80483f0 <puts@plt> 0x08048604 <+82>: add esp,0x10 0x08048607 <+85>: mov DWORD PTR [ebp-0xc],0x0 0x0804860e <+92>: sub esp,0xc 0x08048611 <+95>: lea eax,[ebp-0x23] 0x08048614 <+98>: push eax 0x08048615 <+99>: call 0x80483d0 <gets@plt> 0x0804861a <+104>: add esp,0x10 0x0804861d <+107>: cmp DWORD PTR [ebp-0xc],0xf007ba11 0x08048624 <+114>: jne 0x804862d <main+123> 0x08048626 <+116>: call 0x804854b <print_flag> 0x0804862b <+121>: jmp 0x804863d <main+139> 0x0804862d <+123>: sub esp,0xc 0x08048630 <+126>: push 0x8048772 0x08048635 <+131>: call 0x80483f0 <puts@plt> 0x0804863a <+136>: add esp,0x10 0x0804863d <+139>: mov eax,0x0 0x08048642 <+144>: mov ecx,DWORD PTR [ebp-0x4] 0x08048645 <+147>: leave 0x08048646 <+148>: lea esp,[ecx-0x4] 0x08048649 <+151>: ret Terlihat terdapat penggunaan fungsi gets() yang vulnerable buffer overflow.