GaGe

FTZ level 9 본문

SISS (2017-2018)/FTZ

FTZ level 9

Sorrel 2018. 3. 2. 16:28

level 9

 

 

 

힌트를 열었더니 코드가 나온다.

buf 가 나오는 것을 보아 오버플로우를 이용하는 것 같다.

 

일단 buf2가 10이고

buf가 10이고

 

용량은 10인데

fget으로 buf에 40까지 넣을 수 있는 것이다.

이렇게 원래 용량보다 많은 데이터가 들어가게 되면 오버플로우가 일어나면서

에러가 생기는 것이다.

 

그래서 이 코드의 취약점이 fget인 것이다.

 

 

또 buf2에 첫 문구 두 자리가 go 면

풀리는 것 같다.

 

 

 

 

 

 

일단 vi를 이용해 한글이 없는 코드만을 빼왔다.

편집모드에서 x를 이용하여 한글을 다 지워줬다.

 

 

 

 

 

이렇게 지워줬다.

 

 

 

 

그리고 컴파일 시키고

 

 

 

 

 

디버깅 해봤다.

 

 

fgets는 ebp-40 에 있고

문자를 받은 것으로 보아 buf에 데이터가 들어간다.

 

그리고 strncmp는 ebp-24에 있는데

비교하는 것으로 보아 buf2에 위치한다.

 

 

**여기서부터 집중력과 이해력이 요망되어 그냥 노트에 생각을 정리했다**

 

 

 

이렇기에 buf 에 자리를 꽉 채워주어 buf2까지 데이터가 흘러넘치게 만든다.

 

 

 

 

buf에 A와 같은 아무 글자나 넣어서 넘치게 한다.

24와 40사이에 16의 빈자리가 있어서 16개 넣어주었다.

 

그 다음에 바로 g와 o를 넣었다.

 

 

 

 

 

 

whoami로 누군지 물어보니 level10이라고 한다.

 

다음 단계로 넘어온 것이다.

 

 

거기에서 바로 my-pass 를 입력하니 level10의 비밀번호를 뱉는다.

 

 

 

끝!

 

'SISS (2017-2018) > FTZ' 카테고리의 다른 글

FTZ level 8  (0) 2018.02.25
FTZ level 7  (0) 2018.02.24
FTZ level 6  (0) 2018.02.10
FTZ level 5  (0) 2018.02.10
FTZ level 4  (0) 2018.01.21
Comments