ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lvl 03
    Wargame/HackerSchool FTZ 2019. 1. 5. 07:13

    → level 3 계정 로그인 후, hint 파일을 살펴본다.




    → 힌트를 정리하자면, 3가지이다.


    - autodig 프로그램 소스 - "dig @[사용자 입력값] version.bind chaos txt"의 명령어를 수행하는 프로그램이다. (system 함수)

    - 동시에 여러 명령어 사용법 - 동시에 여러 명령어를 수행하는법은 리눅스에선 | (버티컬 바)와, ;(세미콜론) 정도로 알고있다.

    - 문자열 형태로 명령어 전달법 - 문자열 형태로 명령어 전달? 이건 아마 "(더블쿼터로) 묶는 걸 추측한다.



    → dig 명령어 사용법 및 옵션에 대한 조사를 진행한다.



    → 현재, 사용자 입력 값에 의해 실행되는 명령어는 dig @[입력 값] version.bind chaos txt 이므로, 입력 값 부분의 페이로드를 통해 level4의 my-pass를 알아내야 한다. 힌트는 여러 명령어를 한번에 실행하는 것과, 문자열 형태이다.



    → 먼저 파일을 찾는다. autodig 라는 파일 소스이므로, 해당 파일명으로 찾는다.




    → 해당 파일을 찾고 먼저 정상적으로 파일을 실행해본다. KT DNS(168.126.63.1)을 입력해서 dig 명령어에 대한 결과 값을 출력한다. 해당 입력 값에 내가 원하는 명령어를 삽입해야 하는데, 힌트를 염두한 삽입을 진행한다.




    → /bin/autodig 168.126.63.1;id;#  을 입력하면, id값이 출력되는데 레벨 3이 출력된다.




    → level4가 출력될 것으로 예상했지만, level3이 출력된다. 즉, 뒤에 붙힌 id 라는 명령어는 autodig 프로세스에서 실행된 명령어가 아니란 말이다. 그럼 level3계정으로 실행된건데, 가만히 생각해보면 168.126.63.1; 까지 autodig 프로그램의 파라미터로 전달되고 뒤의 id; 파라미터는, autodig 프로세스가 완전히 종료된 후, 추가적으로 실행된 것으로 추정할 수 있다. 따라서, id 명령어를 인자로 같이 전달해주기 위해 더블쿼터("")로 묶어서 보낸다.



    → 이제 정확히, level 4 계정의 권한으로 명령어를 실행할 수 있으므로, 비밀번호를 알아내기 위해 "168.126.63.1;/bin/bash;" 페이로드를 삽입한다.




    → my-pass를 실행한다.


    'Wargame > HackerSchool FTZ' 카테고리의 다른 글

    lvl 06  (0) 2019.01.10
    lvl 05  (0) 2019.01.10
    lvl 04  (0) 2019.01.09
    lvl 02  (0) 2018.12.11
    lvl 01  (0) 2018.12.11

    댓글

Designed by Tistory.