본문 바로가기

IT전공관련

해커스쿨 FTZ-3 문제풀이

   LEVEL-3 문제풀이


      일단 이번에도 먼저 ls를 쳐보면

  hint파일이 있는 것을 확인할수가있다.

                


그래서 cat명령어를 통해 실행시켜 봤더니

         

 이렇게 아주 긴 hint가 나왔다.

일단 위에 코드 말고 밑에 있는 2가지의 힌트먼저

  보자면 일단 동시에 여러 명령어를 사용하려면

그냥 c언어에서의 코드처럼

;(세미콜론)을 사용하면 된다. 그리고 문자열 형태로

명령어를 전달하려면 ""(쌍따옴표)를 사용하면 된다

그 다음 위에 코드를 해석하자기전에

 먼저 argc와 argv의 대해서 알아봤는데,

이렇게 나와있다. 이걸 간단하게 말하자면

먼저 argc는 프로그램을 실행할 때 지정해준 명령행 옵션의 

개수가 저장되는 곳이고,

argv는 프로그램을 실행할 때 지정해 준 명령행 옵션의 문자열들이 실제로 저장되는 배열이다.

그럼이제 소스코드를 보자면 그냥 간단하게 해석하자면 만약 저 프로그램을 실행시켰을때 argc즉 인자가 2개일 경우 dig@와

입력받은 문자열,version.bind chaos txt가 차례대로 연결된다

그럼 여기서 중요한 사실을 알수있는데, 저 프로그램의 권한이  level4인데 저 프로그램을 실행시키는 도중에 쉘을 따내는

    명령을 쓴다면, 쉘을 딸수도 있다는 사실을 알수가 있다.

그래서 일단 autodig의 위치를 확인해봤다.

그랬더니 bin/autodig 밑에 있다고, 떳다. 그래서 나는

한번 저걸 그냥 실행시켜보았다.

그랬더니

역시 예상대로 전달된 인자가 없어 저렇게 문자열이 나왔다.

그래서 힌트에 있었던 ;과 ""를 이용해 보기로했다.

그래서 

이렇게 입력해봤더니 결국 풀리게 되었다.





'IT전공관련' 카테고리의 다른 글

리눅스 구조 & DNS & 마운트  (0) 2017.08.15
해킹스쿨 FTZ-4 문제풀이  (0) 2017.08.15
리눅스 명령어 정리  (0) 2017.08.15
해커스쿨 FTZ-2 문제풀이  (0) 2017.08.15
해커스쿨 FTZ-1 문제풀이  (0) 2017.08.15