FTZ
[Free Training Zone]
# level20
드디어...끝났다...
사실 이번 문제를 가장 못풀었는데, 내가 포맷 스트링 버그에 대한 정확한 이해를 못했기 때문이다.
가장 이해가 잘되었던 사이트를 참고 사이트란에 써놓아야겠다. 언제 다시 까먹을지 모르니..
티스토리 에디터 너무조타~!~!
일단 소스는 이렇다고 한다:>
뭐 그냥 대놓고 FSB를 쓰라는 문제인 것 같다.
흠 일단 얼마나 떨어져있는지 확인해 보았다.
(더미값이 있는지 없는지)
딱 esp에서 4*4=16바이트만큼 가야지만 0x41414141이 나오는 것으로 보아서, esp-16부분에 bleh가 있다는 것을 알 수 있다.
![](https://blog.kakaocdn.net/dn/eljMz3/btqtSMtOSn3/9KuXq2rUbpI7jGGlqFs1T0/img.png)
그리고 .dtors의 주소를 보니 0x08049594이므로, ret주소는 08049598이 된다.
![](https://blog.kakaocdn.net/dn/Iy8tD/btqtSznV3q9/Ax3vIAajqK8XqEcIimEwsk/img.png)
그리고, 환경변수로 쉘코드를 등록해준다.
![](https://blog.kakaocdn.net/dn/cCIkYA/btqtVIJ4GlP/dIRKtKW5OvlTSyaKkNIrN1/img.png)
사실 cat hint 부분을 보면 메인함수 리턴값도 없고, 메인함수 자체도 멀쩡하지 않아서 gdb가 cp를 해도 뭐 뜯어볼 수가 없다.
브레이크도 못 걸고,, 그래서 그냥 하나 만들었다.
내용은 별거 없음 걍 메인함수에 return 0;만 시켰다. gdb 해서 환경변수 주소 구하려고 임시로 만든 것이다.
![](https://blog.kakaocdn.net/dn/bhkdNn/btqtUAspUF7/ZnlKd8PRhGrakoNifFa3ik/img.png)
만든 파일을 gdb 시켜서 b *main 하고 r 해서 메모리를 뜯어보았다. 저기 있다! 대충 쉘코드 주소를 0xbffffbc3으로 잡았다.
![](https://blog.kakaocdn.net/dn/ci83RG/btqtVuecJbO/Dct9I6IirAvLst6ZQttO4K/img.png)
FSB에 대한 내용을 여기서 일일이 설명하진 않겠지만, 아까 %x을 3번했더니 비로소 A의 값이 나오는 것으로 보아 16바이트 떨어진 곳까지 가야하므로 마지막에 %08x%08x%08x을 해주었다.(esp를 bleh가 있는 곳까지 옮겨야 하기 때문이다.)
쉘코드의 주소가 0xbfffffbc3이었으니 두 개로 나누어서 bfff fbc3로 하였는데, 리턴어드레스가 0x08049598이니 처음에 \x98\x95\x04\x08에 fbc3를 저장해야 했다. fbc3는 십진수로 64451이었고, 앞에 40개의 문자가 있으니 64411 바이트를 입력하여 \x98\x95\x04x08주소에 들어가게 한다. AAAA들은 %n을 만나면 4바이트 올라가므로 그냥 아무거나 넣어준 것이다.
뒤에도 마찬가지로 2바이트 써준거니 이제 ret에서 2바이트 더한 0x0804959a에 bfff를 써주어야 하는데, 1bfff-fbc3해주면 십진수로 50236이 나온다. 그리고 gets 함수니까 그에 맞에 페이로드를 써줘야 했다.
![](https://blog.kakaocdn.net/dn/PlgYL/btqtUBET8Pf/3vnQrr25iLRmd0l17TFa70/img.png)
성공 :D
![](https://blog.kakaocdn.net/dn/dQXC1j/btqtUA64rAu/4kXEyfr721IfnMRC1Gq3SK/img.png)
참고 :
https://geundi.tistory.com/124
https://bbolmin.tistory.com/34https://wisetrue.tistory.com/122
'Wargame > FTZ' 카테고리의 다른 글
[FTZ] level19->level20 (0) | 2019.03.27 |
---|---|
[FTZ] level18->level19 (0) | 2019.03.27 |
[FTZ] level17->level18 (0) | 2019.03.23 |
[FTZ] level16->level17 (0) | 2019.03.23 |
[FTZ] level15->level16 (0) | 2019.03.23 |