ssoL2 TISTORY

[FTZ] LEVEL 5 풀이 본문

challenge/pwn

[FTZ] LEVEL 5 풀이

ssoL2 2021. 1. 28. 09:54

오랜만이구만......... 

FTZ level5를 풀어봅시다. level5 / what is your name?

 

hint에서 /usr/bin/level5 라는 실행프로그램은 /tmp 디렉토리에 level5.tmp를 생성함을 알려줬다.

이 사실만 가지고 level6의 권한을 얻으라는 소리는 level5 프로그램에 뭔가 있다는 소리.

 

으흠, /usr/bin/level5는 level6를 가진 유저에게 SetUID 권한으로 실행한다는 것!

그래도 level5 gid를 가진 사람들도 /usr/bin/level5 실행 권한이 있으니 \tmp에 가서 임시 파일이 생성되는지 확인해봅시다.

 

level5를 실행해도 \tmp 경로에는 level5.tmp 파일이 생성되지 않는다.. 뭐지?

 

tmp 임시 파일은 말 그대로 '임시' 파일로서, 적절히 사용되고 나면 삭제되는 파일이다.

hint는 거짓말을 하지 않을 것이다.. level5가 level.tmp를 생성하긴 하지만 삭제까지 하는 모양이다. (한국말은 끝까지 해야할 거 아녀,,) 

삭제되는 level5.tmp 파일을 읽으려면 어떻게 해야 할까

/usr/bin/level5가 생성하는 파일이므로 level6 권한으로 level5.tmp를 생성하는 것일 것이다. 그렇다면 현재 level5 uid인 내가 level5.tmp를 만들어 놓은 다음에 덮어 씌워지게 하고 맘대로 못지우게 하면 된다. 왜냐하면 삭제 권한은 쓰기 권한과 같기에 level5.tmp를 생성한 나만 지울 수 있을 것이다.

 

cat 리다이렉션으로 level5.tmp를 생성해 'ftz' 내용을 담았다. 파일 생성을 확인한 후 level5를 다시 실행했다.

 

역시 그대로 level5.tmp가 존재하며 level6의 권한으로 생성한 level5.tmp의 내용이 씌워진 모습을 볼 수 있다. 

해결 완료

 

 

추가로, 덮어씌워진 level5.tmp는 당연히 내가 만든 tmp 파일이다. 내용만 덮어씌워진 것이다. 

'challenge > pwn' 카테고리의 다른 글

[FTZ] LEVEL 6 풀이  (0) 2021.01.28
[FTZ] trainer 총정리  (0) 2021.01.28
[FTZ] LEVEL 4 완벽 분석  (0) 2020.11.16
[FTZ] LEVEL 3 풀이  (0) 2020.11.15
[FTZ] LEVEL 2 풀이  (0) 2020.11.14
Comments