hint
/usr/bin/level5 프로그램은 /tmp 디렉토리에
level5.tmp 라는 이름의 임시파일을 생성한다.
이를 이용하여 level6의 권한을 얻어라.
풀이
1. race condition 공격이다.
1-1 $ cd /tmp로 이동
1-2 $ touch game 하여 game 파일 생성
1-3 $ ln -s game level5.tmp 명령으로 game파일에 심볼릭 링크
1-4 /usr/bin/level5 파일 실행으로 /tmp/level5.tmp 파일이 생성되면 이미 있으므로 내용을 덮어 쓰게 됨. (없는 경우 생성)
심볼릭 링크가 걸려있으므로, level5.tmp의 내용이 파일 game에도 쓰여지고 임시파일을 삭제 함
2. 밑의 두 가지 파일 생성
2-1 go.c
2-2 stop.c
2-3 컴파일
3. $ ./go & <- 명령어로 백그라운드로 실행하여 계속 /usr/bin/level5 실행
4. $ ./stop.c <- 명령어로 파일 game의 내용 출력
5. 결과값을 깔끔하게 얻으려면 반복문을 무한루프로 하는 대신 최대값을 정해주면 됨
'WARGAME > hackerschool ftz,lob' 카테고리의 다른 글
[해커스쿨 ftz] level 7 -> level 8 (0) | 2014.08.20 |
---|---|
[해커스쿨 ftz] level 6 -> level 7 (0) | 2014.08.20 |
[해커스쿨 ftz] level 4 -> level 5 (0) | 2014.08.20 |
[해커스쿨 ftz] level 3 -> level 4 (0) | 2014.08.19 |
[해커스쿨 ftz] level2 -> level3 (0) | 2014.08.19 |