티스토리 뷰

PWNABLE.KR/FTZ

[FTZ WriteUp] level5

PreGoogler 2018. 12. 25. 01:10

[Level 5]

이번에는 level5입니다.


우선 level5계정의 홈디렉토리의 hint파일의 내용을 확인해 보겠습니다.



/usr/bin/level5명령어는 /tmp 디렉토리에 level5.tmp라는 임시파일을 생성한다고 하니 

/usr/bin/level5명령어를 실행하여 임시파일이 생성되는지 확인해 보겠습니다.



나타나지 않네요. 임시파일은 생성됬다가 지워지나봅니다.


이 문제는 '레이스 컨디션'을 이용하여 공격해야 하는 문제인데요

이때 '레이스 컨디션 공격'이란 

한정된 자원을 동시에 이용하려는 여러 프로세스가 자원의 이용을 위해 경쟁을 벌히는 현상을 이용한 공격

입니다.

 공격 방법을 간단히 설명하자면 /usr/bin/level5 프로그램이 생성하는 임시 파일인 level5.tmp 에 심볼릭 링크를 걸고 심볼릭 건 파일의 내용을

출력함으로써 level5.tmp의 내용을 볼 것인데요,


이 공격에서 주의할 점이 /usr/bin/level5명령어와 심볼릭 링크를 거는 명령어를 충분히 반복해서 실행하여

언젠가는 level5.tmp에 심볼릭 링크가 걸리도록 해야한다는 것입니다.


소스코드를 보자면 a.c는 /usr/bin/level5 명령어를 백그라운드에서 10000번 반복해서 실행하고

b.c는 level5.tmp에 심볼릭 링크를 걸 파일인 level5.attack파일을 만들고 계속해서 심볼릭링크를 걸기를 시도하고 있습니다.



그럼 이제 a 프로그램을 백그라운드로 실행하고(b를 동시에 실행하기 위해) b를 실행하면 심볼릭 링크가 걸리고 다음 패스워드가 나오는 것을 확인할 수 있습니다.



이상입니다.

'PWNABLE.KR > FTZ' 카테고리의 다른 글

[FTZ WriteUp] level4  (0) 2018.12.24
[FTZ WirteUp] level3  (0) 2018.10.26
[FTZ WirteUp] level2  (0) 2018.10.26
[FTZ WirteUp] level1  (0) 2018.10.24
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함