본문 바로가기

WARGAME/FTZ [system]

ftz level 14 [level14]

 

 

 

level14

 

 

힌트를 살펴보니, level9에서 "go" 가 원하는 곳에 오도록 하는 문제와 비슷해보인다.

 

다른 점은 check 가 0xdeadbeef 여야 한다는 것?

 

 

입력은 buf 에 버퍼 크기는 20 byte.

사용자로부터 45byte까지 입력 받을 수 있고, check 는 어디에 위치해 있는지 디버깅을 통해 확인해보자.

 

작성 후 컴파일, 디버깅.

 

 

 

 

 

 

스택으로 확인해보면,

buf 는 ebp 보다 56 바이트 위 할당

cmp로 비교되는 check 은 ebp 보다 16 바이트 위 할당

 

따라서 둘의 차이는 40 바이트가 될 것이다.

 

 

 

 

 

 

페이로드는 40 바이트 만큼 오버플로우 후 0xdeadbeef 를 입력하면 되는 것.

 

 

 

 

 

 

 

 

 

(python -c 'print "a"*40 + "\xef\xbe\xad\xde"';cat ) | /home/level14/attackme

 

또 짤려서 다 적어봄.

 

 

 

 

 

암튼 level9 에서와 마찬가지로 오버플로우 시켜서 

level15 password "guess what" 획득 !

 

 

 

 

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

ftz level 16 [level16]  (0) 2020.05.01
ftz level 15 [level15]  (0) 2020.05.01
ftz level 13 [level13]  (0) 2020.04.30
ftz level 12 [level12]  (0) 2020.04.30
ftz level 11 [level11]  (0) 2020.04.30