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 |