본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-
Study/ftz

FTZ level9

by intadd 2016. 6. 22.


FTZ (Free Training Zone) level8


 


1. 환경 : window10

2. VM, Red Hat Linux 9.0, putty




id : level9

pw : apple



1.     cat hint를 사용하여 힌트를 확인한다.

        

     


2.  코드 분석

1) Char Buf2[10] 의 공간에 10이라는 공간을 준다


2) Char Buf [10] 라는 공간에 10이라는 공간을 준다.   


3) feget() (scanf와 같은 역할이다 ) 어떤 값을 입력 받는다.

           (글자수 제한이 없는 bof취약점을 이용한다.)  


4)strcmp 두개의 글자를 비교한다 같으면 0을 반환 앞에 단어가 사전에 먼저 나요면 -1을 반환한다

(level9에서는 buf2공간과 “go”글자를 비교)


3.  공격방법


1) Buf의 공간에 넘치는 값을 입력하여 buf2의 공간을 침범시킨다. (여기서 한글자당 1byte 이다. (10공간중 1에 해당) )

2) Buf buf2사이의 dummy값이 얼마인지 모르기 때문에 go를 무작위로 많이 대입시킨다.

        3) Buf2라는 공간에 go라는 단어가 침범하고 strcmp라는 함수가 정상적으로 buf2“go”를 비교하여 

    goodluck을 출력하고 level10의 /bin/bash를 실행시킨다.


     


/* 

4. 전달


  

  feget함수의 bof취약점을 이용하는 것은 동일하지만 "go"를 직접 입력하지 않고

  넘겨주는 방법입니다.

  


        



'Study > ftz' 카테고리의 다른 글

FTZ level11  (0) 2016.07.12
FTZ level10  (0) 2016.06.23
FTZ level8  (0) 2016.06.22
FTZ level7  (0) 2016.06.21
FTZ level6  (0) 2016.06.21

댓글