본문 바로가기

WARGAME/FTZ [system]

ftz level 13 [level13]

 

 

 

 

 

이번에도.. 딱봐도 오버플로우다.

 

 

 

 

 

살펴보면 왠지 스택은

 

 

                                     low

buf
i
SFP
RET

                                     high

 

이런 형태일 것 같고, 아마 if 문에서 i 값이 1234567 인지 확인한 후 맞아야 종료되지 않는 걸로 보아 

buf 에 값을 오버플로우 시켜 i 자리에 1234567 이 들어가도록 하는 것 같다.

 

 

 

 

 

 

 

 

 

 

 

정확한 바이트 수를 알아내기 위해 /tmp 로 이동 후 똑같이 소스파일 생성, 컴파일, 디버깅을 해보자.

 

 

 

처음 esp 에서 0x418 (1048) 만큼 공간을 할당해주는 부분이 보이고,

ebp -12 위치에 0x1234567 인 i 가 할당되어 있는 것을 볼 수 있다.

 

 

 

 

 

이를 참고해서 간단하게 스택을 그려보자면,

 

 

이런식으로 되는 셈이다.

 

buf[1024] + dummy[12] + i[4] + dummy[8] = 1048 .

 

 

 

 

 

따라서 1036 바이트를 채운 후 "\x67\x45\x23\x01" 를 입력하고, 다시 더미와 sfp 총 12 바이트를 채우고,

ret 자리에 쉘 코드를 담은 환경변수 주소를 넣어주면! 성공할 것이다.

 

 

 

 

 

 

 

 

그럼 먼저 환경 변수 설정 후 주소 확인을 해보면, (자세한 과정은 level11 풀이 참고)

 

 

 

 

 

 

 

 

이제 attackme 에 인자로 입력해주자.

 

 

 

 

level14 password "what that nigga want?" 획득!

 

'WARGAME > FTZ [system]' 카테고리의 다른 글

ftz level 15 [level15]  (0) 2020.05.01
ftz level 14 [level14]  (0) 2020.04.30
ftz level 12 [level12]  (0) 2020.04.30
ftz level 11 [level11]  (0) 2020.04.30
ftz level 10 [level10]  (0) 2020.04.30