반응형
문제 내용
힌트를 보면 /usr/bin/level5 프로그램을 실행하면 /tmp 디렉토리에 level5.tmp라는 임시 파일을 생성한다고 한다.
/usr/bin/level5를 실행하고 /tmp 디렉토리를 확인 해 보겠다.
명령어를 실행하였지만 level5.tmp가 생성되지 않았다.
하지만 생성된것이 아니라 빨리 삭제가 된것이여서 보이지 않는 것이다.
이것은 레이스 컨디션 공격을 통해 문제를 해결할 수 있다.
레이스 컨디션 공격을 위한 조건은 아래와 같다.
1. SUID가 걸려있어야 한다.
2. 임시파일을 생성해야 한다.
3. 임시로 생성되는 파일의 이름을 알아야 한다.
/usr/bin/level5를 실행하면 /tmp/level5.tmp 파일이 생성된다.
setUID가 걸려있고 임시파일을 생성하고 생성되는 파일의 이름을 알기 때문에 공격이 성립한다.
심볼릭 링크할 원본 파일을 만들었고 생성될 임시파일의 이름으로 원본 파일에 심볼릭 링크를 걸었다.
심볼릭 링크가 걸리면 원본파일에 내용을 추가하면 심볼릭 링크파일에도 같은 내용이 추가가 된다. 역도 성립한다.
심볼릭 링크가 삭제되면 원본파일은 그대로 남아있기 때문에 심볼릭 링크의 내용을 확인할 수 있다.
명령어를 실행하고 원본파일의 내용을 읽어보면 데이터가 쓰여진것을 확인할 수 있다.
level5 비밀번호 : what the hell
반응형
'hackerschool 문제 > FTZ' 카테고리의 다른 글
[Hackerschool FTZ] - level 7 문제 (0) | 2022.11.19 |
---|---|
[Hackerschool FTZ] - level 6 문제 (0) | 2022.11.18 |
[Hackerschool FTZ] - level 4 문제 (0) | 2022.11.09 |
[Hackerschool FTZ] - level 3 문제 (0) | 2022.10.04 |
[Hackerschool FTZ] - level 2 문제 (2) | 2022.10.03 |