티스토리 뷰

HackerSchool FTZ WARGAME Solution

 

Start : 15.07.03

 

LEVEL9

 

[그림 1]

 

level9의 hint 를 보면 [그림 1] 과 같이 /usr/bin/bof 프로그램의 소스 코드가 있다. 소스 코드를 보면 buf2와 bof 배열이 각각 10칸씩 선언이 되어있고, fgets 로 40byte 만큼 buf 배열에 입력받는다.

입력받는건 buf지만 strncmp 로 비교하는 배열은 buf2 인걸 보니 버퍼 오버플로우를 이용해서 buf2에 "go" 라는 문자열이 저장되도록 해야 하는 것 같다.

 

[그림 2]

 

gdb 를 이용해서 buf 배열에 할당 된 공간을 확인하려 했으나 허가 거부가 되었다. 이유를 보니 /usr/bin/bof 에 권한이 그룹에 포함된 계정의 경우 실행 권한만 있고 읽기, 쓰기 권한이 없었다. 때문에 gdb 로 분석을 할 수 없었다.

 

[그림 3]

 

그래서 결국엔 추측으로 앞에 아무 의미 없는 dummy 값을 11개부터 시작해서 하나씩 늘려가면서 오버플로우를 했다. 그렇게 dummy 값이 16개가 된 순간 level10으로 권한이 상승 되었다.

신고
댓글
댓글쓰기 폼