System/FTZ

FTZ. 5

dcho 2019. 9. 5. 21:48
SMALL
level 5 // what is your name? (Race Condition)



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

Race Condition의 공격의 기본
  1. 취약 프로그램이 생성하는 임시 파일의 이름을 파악
  2. 생성될 임시 파일과 같은 이름의 파일을 생성
  3. 이에 대한 심볼릭 링크를 생성
  4. 원본 파일을 지운 채 위약 프로그램이 심볼릭 링크를 건 파일과 같은 파일을 생성할 때를 기다린다.
  5. 생성되었을 때, 심볼릭 링크를 이용해 파일 내용을 변경
  6. 시스템은 변경된 파일을 자신이 생성한 임시 파일로 생성하고 프로세스를 진행시킬 것이고, 공격자는 관리자 권한으로 실행되는 프로그램에 끼어들어 무언가를 할 수 있는 여지를 만든다.


심볼릭 링크
/usr -> tmp 있음


이건 심볼릭 링크 파일 속성이라고 함. lrwxrwxrwx으로 더미값을 의미, 실제 파일의 속성은 심볼릭 링크가 가리키는 파일의 속성값을 따름

뭐 이런게 있는데 중요한게 아니였다 /tmp 디렉토리에 있었음..

무튼 심볼릭 링크는 바로가기 라고 한다. 

첨에 저 프로그램을 실행시키면 뭐가 될줄 알았는데 임시파일도 안나오고 그러길래 뭐지 하다가 알게된 사실
이 파일의 흐름은 다음과 같았다.
  1. /usr/bin/level5 프로그램 시작
  2. /tmp/level5.tmp 임시파일 생성
  3. 임시파일에 내용쓴 후 처리/사용
  4. 파일 삭제
  5. 종료

그래서 프로그램 시작할때 /tmp/level5.tmp 를 만들기 전에 링크파일을 먼저 만들고 링크를 걸 수 있어야 한다.

우선 임시파일에 내용을 쓴 것을 받아 줄 수 있는 key라는 링크파일을 만들어 주었고 명령어를 통해 링크를 걸어 주었다 ><

잘 들어가 있군! 그렇다면 이제 파일을 실행시키고 난 뒤 링크파일을 열어보자


잘 쓰여져서 정답을 추출해 내었다.

'System > FTZ' 카테고리의 다른 글

FTZ. 7  (0) 2019.09.05
FTZ. 6  (0) 2019.09.05
FTZ. 4  (0) 2019.09.05
FTZ. 3  (0) 2019.09.05
FTZ. 2  (0) 2019.09.05