[해커스쿨 ftz] level 5 -> level 6

2014.08.20 01:39

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. 결과값을 깔끔하게 얻으려면 반복문을 무한루프로 하는 대신 최대값을 정해주면 됨

smleenull WARGAME/hackerschool ftz,lob

티스토리 툴바