FTZ 5번 문제



Hint

1



/usr/bin으로 가서 level5를 찾아보니 Set uid가 설정 되어 있다.

2

이 문제는 레이스 컨디션을 이용하는 문제로 level5 프로그램을 실행
시켜 level5.tmp의 내용을 가져와야 한다.

※ 레이스 컨디션(Race Condition) : 공유 자원에 대해 여러 개의 프로세스가 동시에 접근하기 위해 경쟁하는 상태.

주 공격 대상은 root나 권한이 높은 사용자의 Setuid가 설정된,
임시 파일을 생성하는 프로그램이다.


3
for.c의 소스코드


level5 프로그램을 1000번 이상 실행시킨다.


4
ln -s 란 소프트 링크(심볼릭)를 거는 명령어고 소프트 링크는
원본 파일의 정보를 가져올 수 있으며

이 문제에서는 test라는 파일에 leve5.tmp에 대한 소프트 링크를
걸어 내용을 가져올 예정이다.


5
만들어 낸 파일들을 컴파일 한다.


6
test라는 이름의 더미 파일을 만든다.


7
&를 사용해 for 과 for2를 실행시킨다.

※ 리눅스에서의 & : 앞의 명령어를 백그라운드로 돌리고 동시에
뒤의 명령어를 실행


8
실행화면, 실행결과


9
test 파일의 내용