level 5
' ls -l '을 통해 ' hint ' 파일이 존재하는 것을 확인한 후, ' cat ' 명령을 통해 내용을 확인해주었다.
' /user/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다 ' 라는 힌트를 얻었다.
즉, level5 프로그램을 실행할 때, 임시 디렉토리에 ' level5.tmp ' 라는 임시 파일을 생성하고, 직접 실행하고 해당 디렉토리가 확인되면 임시파일을 삭제 ( 사라짐 ) 되는 것이다.
사라진 임시파일의 내용을 확인하는 방법에는 대표적으로 3가지가 있다.
- 심볼릭 링크를 활용해서 임시파일이 링크로 생성한 파일에 전달되도록 하는 방법
- 임시 파일의 이름과 같은 이름의 파일을 생성해 해당 파일에 내용이 쓰여지게 하는 방법
- 레이스 컨디션 ( 여러 프로세스의 동시 접근 악용 ) 을 활용한 방법
첫 번째 방법과 두 번째 방법을 사용해서 문제를 풀어보았다.
일단 첫 번째 방법인 심볼릭 링크를 사용해서 문제를 풀어보았다.
※ 심볼릭 링크
: 어떤 파일을 가르키는 파일이며 바로가기 같은 기능을 함
일단 /tmp 디렉토리에 임시 파일이 생성되므로 ' /tmp 로 이동하였다.
여기서부터 진행할 순서는
- ' touch ' 명령을 통해 크기가 0 바이트인 새로운 파일 생성
- 생성된 새로운 파일에 심볼릭 링크를 걸어주는 명령어인 ' ln ' 을 이용해서 심볼릭 링크를 걸어줌
- 프로그램이 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 ' 을 임의로 만들어 생성되는 임시 파일의 내용을 임의로 만든 파일에 내용을 넘길 수 있게한다.
여기서부터 진행할 순서는
- ' rm ' 명령을 통해 ' level5.tmp ' 파일 제거
- ' touch ' 명령을 통해 ' level5.tmp ' 이름의 크기가 0 바이트인 새로운 파일 생성
- ' /usr/bin/level5 ' 실행
- ' 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 |