level3의 ID와 PW는 아래와 같습니다.

 

ID : level3

PW : can you fly?

 

level3의 hint 파일을 읽으면 [그림 1]과 같이 나오게 됩니다.

[그림 1] level03 hint 파일 캡처


[그림 1]에서는 어딘가에 작성되어 있는 autodig라는 파일의 코드입니다.

이 소스를 이용하여 level4의 권한을 얻어야 합니다.

more hints로는 동시에 여러 명령어를 사용하기 위한 방법문자열 형태로 명령어를 전달하는 방법이 있습니다.

먼저 level03에서 사용할 autodig 파일을 검색해봅시다.

명령어는 다음과 같은 형태로 find를 작성할 수 있습니다.


find / -name autodig 2>/dev/null 



[그림 2]와 같이 autodig 파일은 /bin 디렉토리 내에 있다는 것을 알 수 있습니다.


[그림 2] autodig 위치


autodig라는 파일을 찾았으면 먼저 그 파일을 어떻게 이용할 수 있는지 탐색해볼 필요가 있습니다.

가장 먼저 권한과 사용자가 어떻게 되어 있는지 살펴봅시다.

ls -l /bin/autodig 명령어를 작성하여 파일의 권한을 보니 [그림 3]과 같이 나타났습니다.


[그림 3] autodig 파일의 권한


파일은 level4의 소유자로 되어있으며, user 권한에는 setuid가 설정되어 있는 s가 보입니다.

level4 권한으로 실행할 수 있는 이 파일을 이용하여 우리가 원하는 명령어를 사용할 수 있도록 방법을 궁리해봅시다.

이에 대한 답은 more hint에서 힌트를 얻을 수 있습니다.


more hint 내용

 명령어를 한 번에 여러 개를 실행할 수 있는 방법 

 명령어를 문자열 형태로 입력하는 방법


<명령어를 한 번에 여러 개를 실행>

    기존의 명령어를 실행한 후, 해커가 원하는 명령어도 실행할 수 있도록 한다는 의미입니다.


<명령어를 문자열 형태로 입력>

    여러 개의 명령어를 하나로 한 녀석을 하나의 argv에 집어넣기 위한 꼼수입니다.


[그림 3][그림 4]는 위 설명에 대한 예시를 보여줍니다.

[그림 3] 여러 명령어를 한 번에 실행


명령어가 한 번에 실행될 수 있는 방법은 여러가지가 있습니다.

그중 우리가 사용할 옵션은 세미콜론(;)입니다.


[그림 4] 명령어를 문자열로 입력


문자열로 한 번에 주기 위해서는 따옴표(')로 묶어줄 수 있습니다.

즉, 127.0.0.1이라는 문자열과 vi라는 문자열을 한 번에 argv[1]에 입력값으로 집어넣을 수 있다는 것을 의미합니다.

127.0.0.1이라는 값이 autodig에 사용되고 이후 level4의 setuid 권한을 통해 vi가 실행됩니다.

level02에서 했던 방법대로 bash 명령어를 사용하면 level4의 권한을 얻게 됩니다.

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

level08_FTZ  (0) 2016.01.07
level07_FTZ  (0) 2016.01.07
level06_FTZ  (0) 2016.01.07
level05_FTZ  (0) 2015.11.27
level04_FTZ  (0) 2015.11.26
level02_FTZ  (0) 2015.11.15
level01_FTZ  (0) 2015.11.15
FTZ - hackerschool Local Setting  (0) 2015.08.04

+ Recent posts