Systemhacking/FTZ

[FTZ] level5

レ(゚∀゚)ヘ=3 2021. 3. 30. 19:17
728x90

level 5

 

 

' ls -l '을 통해 ' hint ' 파일이 존재하는 것을 확인한 후, ' cat ' 명령을 통해 내용을 확인해주었다.

' /user/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다 ' 라는 힌트를 얻었다.

즉, level5 프로그램을 실행할 때, 임시 디렉토리에 ' level5.tmp ' 라는 임시 파일을 생성하고, 직접 실행하고 해당 디렉토리가 확인되면 임시파일을 삭제 ( 사라짐 ) 되는 것이다.

 

사라진 임시파일의 내용을 확인하는 방법에는 대표적으로 3가지가 있다.

  1. 심볼릭 링크를 활용해서 임시파일이 링크로 생성한 파일에 전달되도록 하는 방법
  2. 임시 파일의 이름과 같은 이름의 파일을 생성해 해당 파일에 내용이 쓰여지게 하는 방법
  3. 레이스 컨디션 ( 여러 프로세스의 동시 접근 악용 ) 을 활용한 방법

 

첫 번째 방법과 두 번째 방법을 사용해서 문제를 풀어보았다.

일단 첫 번째 방법인 심볼릭 링크를 사용해서 문제를 풀어보았다.

더보기

 

심볼릭 링크 

: 어떤 파일을 가르키는 파일이며 바로가기 같은 기능을 함

 

 

일단 /tmp 디렉토리에 임시 파일이 생성되므로 ' /tmp 로 이동하였다.

여기서부터 진행할 순서는

  1. ' touch ' 명령을 통해 크기가 0 바이트인 새로운 파일 생성
  2. 생성된 새로운 파일에 심볼릭 링크를 걸어주는 명령어인 ' ln ' 을 이용해서 심볼릭 링크를 걸어줌
  3. 프로그램이 level5.tmp에 쓰면 연결된 심볼릭 링크 파일에도 동일한 내용이 작성됨

이다.

 

' touch ' 명령어를 통해 새로운 파일인 ' level5sl ' 을 생성하고, ' ls -al ' 을 통해 ' level5sl ' 의 크기가 0byte인 것을 확인하였다.

' ln -s level5sl level5.tmp ' 명령을 통해 ' level5sl ' 파일에 ' level5.tmp ' 파일의 심볼릭 링크를 걸어주었고, ' ls -al ' 명령을 통해 확인해주었다.

 

' cd ' 명령어를 통해 ' /usr/bin ' 으로 이동을 한 다음, ' ./level5 ' 을 통해 level5 파일을 실행하였다. 

그리고 나서 심볼릭 링크가 걸려있는 ' level5sl ' 의 내용을 확인해보기 위해 ' cd /tmp ' 을 통해 이동해주었다.

' cat ' 명령어를 통해 ' level5sl ' 파일을 확인해보니, level6의 패스워드인 " what the hell " 이 입력되어 있었다.

 


 

두 번째 방법인 같은 이름의 파일을 생성해서 문제를 풀어보았다.

' level5 ' 을 실행하면 ' level5.tmp ' 임시파일이 ' /tmp ' 에 생성된 다음 사라진다. 이 때 ' level5.tmp ' 을 임의로 만들어 생성되는 임시 파일의 내용을 임의로 만든 파일에 내용을 넘길 수 있게한다.

여기서부터 진행할 순서는

  1. ' rm ' 명령을 통해 ' level5.tmp ' 파일 제거
  2. ' touch ' 명령을 통해 ' level5.tmp ' 이름의 크기가 0 바이트인 새로운 파일 생성
  3. ' /usr/bin/level5 ' 실행
  4. ' level5.tmp ' 파일 내용 확인하면 원하는 값을 얻을 수 있음

이다.

 

' rm ' 을 통해 ' level5.tmp ' 파일을 제거를 한 다음, ' ls -l ' 을 통해 확인해주었다.

 

' touch ' 를 통해 ' level5.tmp ' 파일을 생성한 다음, ' ls -l ' 을 통해 0byte로 생성된 것을 확인하였다.

 

' /usr/bin/level5 ' 을 실행한 후에 ' ls -l ' 을 통해 확인하였더니, 용량이 0이었던 ' level5.tmp ' 가 31로 바뀐 것을 볼 수 있다. 

 

' cat ' 명령을 통해 ' level5.tmp ' 을 확인하니까 level6의 패스워드인 " what the hell " 을 얻을 수 있었다.

 

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

[FTZ] level9  (0) 2021.05.06
[FTZ] level6  (0) 2021.03.30
[FTZ] level4  (0) 2021.03.30
[FTZ] level3  (0) 2021.03.25
[FTZ] level2  (0) 2021.03.25