R's Hacking Daily Log

FTZ Hacker school - level 3 본문

FTZ

FTZ Hacker school - level 3

hanhxx 2023. 3. 17. 12:18

[ cat level3 hint ] :: level3의 hint를 읽어보니 "autodig source"가 나온다. 

내용을 보니 결과적으로는 system()이 cmd를 실행하는 데 cmd 내용은 사용자의 입력값을 사용하는 듯하다.

 

 

dig @input_string version.bind chaos txt

strcpy() & strcat()으로 이와 같은 내용의 cmd를 만드는 것

 

 

그렇다면 그게 뭐든 입력한 값을 cmd에 포함해서 system()을 실행시킨다는 거니까

my-pass를 포함시킨 내용을 autodig로 실행시키면 될 거 같다.

 

 

 

[ check setuid file ] :: level4로 setuit가 설정된 파일 중 "/bin/autodig" file이 보인다.

hint에서 본 autodig source가 이 실행 파일 내용을 말하는 것 같다. 

 

 

 

[ execute /bin/autodig ] :: /bin/autodig를 실행해 level4의 password를 얻어보자.

/bin/autodig 뒤에 cmd에 포함될 입력값을 쓰면 되는 데 " "로 묶어서 my-pass를 넣어줬다.

 

 

" "으로 묶는 이유는 hello부터 my-pass를 하나의 덩어리로 가져가도록 하기 위함이고

이 과정은 hello 뒤에 my-pass를 이어 붙이기 위해 쓴 " ; "에 의해 command가 끊기지 않게 하기 위함이다.

 

 

hello;my-pass가 실행되면 사실 hello가 사용된 dig @hello~ 가 실행되고 이어서 my-pass가 실행되는 것.

 

 

" "으로 묶어주지 않으면 hello를 입력으로 하는 /bin/autodig가 실행되고 나서 (level 4 권한)

level3 권한 상태의 command line에서 my-pass가 실행된다.

 

 

my-pass를 level4 권한 상태에서 실행해서 password를 얻어야 하는 것이기 때문에 " "를 이용해

/bin/autodig 파일 실행 중 my-pass가 적용되게 하는 것이다.

 

 

 

[ get password ] :: 실행결과를 보면 level4의 password가 성공적으로 출력된 걸 볼 수 있다. 

 

 

! level4 password = suck my brain

'FTZ' 카테고리의 다른 글

FTZ Hacker school - level6  (0) 2023.03.20
FTZ Hacker school - level 5  (0) 2023.03.17
FTZ Hacker school - level 4  (0) 2023.03.17
FTZ Hacker school - level 2  (0) 2023.03.17
FTZ Hacker school - level 1  (0) 2023.03.17
Comments