FTZ level5 풀이
FTZ level5 풀이
level5 홈디렉터리의 내용 확인, hint 파일과 폴더 2개 확인
hint를 확인해보자
/usr/bin/level5 프로그램에 의해 /tmp 디렉토리에 level5.tmp 라는 임시 파일이 생성되며, 그것을 이용하여 level6의 권한을 흭득하는것이 이번 level의 목표인것 같다.
/usr/bin/level5 파일을 확인해보니 level6의 권한으로 setuid가 걸려있다는 것을 확인했다.
level5를 실행시켰다. 이제 /tmp 디렉토리로 이동해 level5.tmp 라는 임시파일이 생성됬는지 확인해보자.
아무리 실행시켜도 /tmp 디렉토리에 level5.tmp 라는 임시 파일은 생성되지 않았다.
그렇다면 생각해볼점은 /usr/bin/level5 프로그램 실행시 /tmp 디렉토리에 level5.tmp 임시 파일이 생성되지만 프로그램이 종료되기 직전 과정에서 삭제된다는 점이다. level5.tmp가 생성되고 삭제되기전에 이 파일의 내용을 가로챌수있는 방법을 생각해보자.
구글링 시도중 심볼릭 링크(symbolic link)를 이용하여 파일의 내용을 가로채는 방법을 확인할 수 있었다.
#TIP.symbolic link?
- 심볼릭 링크란 어떤 파일을 가르키는 파일로 windows의 바로가기와 비슷한 개념이라고 생각하면 된다.
/tmp 폴더에 test 라는 파일을 만들고, /tmp/test 파일에 level5.tmp의 심볼릭 링크를 걸어주게 되면 /usr/bin/level5 가 실행되고 지워지기 전에 level5.tmp의 내용이 고스란히 test 파일에 들어갈것이다. 그렇게 되면 level5.tmp 파일이 지워져도 우리는 test 파일의 내용을 확인해 level5.tmp 파일 내용 확인이 가능할 것 이다.
touch 명령어로 크기가 0바이트인 test 파일 생성!
심볼릭 링크를 걸어주는 명령어인 ln을 이용하여 test파일에 level5.tmp 파일의 심볼릭 링크를 걸어주고 ls 명령어로 확인
심볼릭 링크를 이용한 파일 가로채기 준비가 끝났으니 이제 /usr/bin/level5 프로그램을 실행시키면 어떻게 되는지 확인해봅시다.
level5.tmp 파일은 삭제되고 없었지만 test 파일의 용량이 0 바이트에서 31바이트로 증가했다. 이것은 test파일에 level5.tmp의 내용이 쓰여졌다는 것을 의미한다. test파일의 내용을 확인해보자
cat 명령어로 test 파일을 확인해보니 level6의 패스워드가 들어있었다.
level5 clear~
'System Hacking > FTZ' 카테고리의 다른 글
FTZ level7 풀이 (0) | 2017.06.30 |
---|---|
FTZ level6 풀이 (0) | 2017.06.30 |
FTZ level4 풀이 (0) | 2017.06.30 |
FTZ level3 풀이 (0) | 2017.06.30 |
FTZ level2 풀이 (0) | 2017.06.30 |