[해커스쿨] FTZ LEVEL9 문제 풀이
ㅁ 문제 요약
문제 유형 | System Hacking |
문제 타입 | Linux |
문제 난이도 | 하 |
ㅁ 상세분석
[그림 1] 문제 내용
LEVEL9 계정으로 로그인 하고 hint 파일 내용을 보면 /usr/bin/bof 파일의 소스코드를 보여준다. 소스코드를 분석해서 if문 안에 있는 명령어를 실행하면 level10 계정 권한을 획득할 수 있다.
[그림 2] /usr/bin/bof 소스코드 분석
buf2, buf 두 개의 변수를 각각 10 바이트씩 선언하고 fgets 함수를 이용해서 buf 변수에 입력 받는데 40 바이트를 입력받을 수 있도록 해서 buf2 영역을 침해할 수 있다. if문 안에 있는 명령어를 실행해야 하는데 buf2 변수에 go라는 문자열이 존재하면 if문이 실행된다. 즉 go 문자열을 40바이트 사용하면 통과할 수 있다.
[그림 3] 문제 결과
gogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogo 문자열을 입력 값으로 넣어주면 level10 권한의 shell을 획득하게 된다. my-pass 명령어를 실행하면 level10 권한의 패스워드를 획득할 수 있다.
'Wargame & CTF > Hackerschool FTZ' 카테고리의 다른 글
[해커스쿨] FTZ LEVEL11 (0) | 2016.01.04 |
---|---|
[해커스쿨] FTZ LEVEL10 (0) | 2015.12.31 |
[해커스쿨] FTZ LEVEL8 (0) | 2015.12.30 |
[해커스쿨] FTZ LEVEL7 (0) | 2015.12.29 |
[해커스쿨] FTZ LEVEL6 (0) | 2015.12.28 |