이번에도 BOF로 풀면 될 듯 합니다.
gdb로 attackme를 열어봅니다.
stack을 264(0x108)만큼 확보합니다.
Stack 구조
Low addr
buf and var (264-byte) |
sfp (4-byte) |
ret (4-byte)
|
High addr
nop slide와 shell code로 268-byte를 만들고 끝에 ret를 덮어씌우면 되겠습니다.
return 할 주소를 찾기 위해 buffer에 접근하는 printf 주변을 찾아봅니다.
0xbffffa20부터 buffer가 시작됩니다.
nop slide와 shell code 그리고 ret 값을 넣어줍니다.
nop slide 중간쯤에 떨어뜨려줍니다.
level13의 shell이 떨어졌습니다.