본문 바로가기

WARGAME/FTZ [system]

ftz level 15 [level15]

 

 

 

 

 

level15

 

이 문제는 level14 와 정말 비슷해보이지만 차이는

check 라는 포인터 변수가 가리키는 주소의 값이 0xdeadbeed 가 되도록 해야한다.

 

 

 

 

 

 

귀찮으니까 attackme 를 level14/tmp 위치에 복사 시킨후 디버깅해보자.

 

 

앞 문제에서 본 결과와 같은 것을 볼 수 있다.

 

 

 

 

오버플로우 방법은 여러가지가 있을 수 있지만 내가 생각해낸 방법은 바로

check 포인터 자리에 deadbeef  문자열이 들어있는 주소가 오도록 오버플로우 시키는 방법이다.

 

 

 

 

 

 

먼저 strcmp 을 하는 부분에 브포를 걸고 실행시켜서 deadbeef 문자열이 들어있는 곳의 주소를 찾아내자.

eip 레지스터(다음 명령어 ) 의 주소값을 출력하기 위해 넉넉히 32개의 16진수로 출력을 해주면,

 

 

deadbeef 문자열이 담긴 주소 0x80484b2 를 알아낼 수 있다.

 

 

 

 

 

 

 

 

 

이제  buf 와 *check 의 차이가 40 바이트 이므로 참고하여 페이로드를 짜서 입력하면,

(level14 풀이 참고)

 

 

level16 password "about to cause mass" 획득 !

 

 

 

 

 

 

 

 

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

ftz level 17 [level17]  (0) 2020.05.01
ftz level 16 [level16]  (0) 2020.05.01
ftz level 14 [level14]  (0) 2020.04.30
ftz level 13 [level13]  (0) 2020.04.30
ftz level 12 [level12]  (0) 2020.04.30