본문 바로가기

* Wargame/F.T.Z

F.T.Z - level3



level3 문제풀이이다.
여러가지 자료들을 참조해서 써본다.




hint에 나와있는 건 autodig 라는 프로그램의 소스는 Domain Information Groper의 약자이다. 
소스를 분석해보니 autodig  string  이렇게 입력하면 dig @  string  version.bind chaos txt 명령을 자동으로 실행해주는 프로그램인 것 같다. 저  string 에는 서버의 도메인 네임이나 서버의 IP adress이다.

명령어들 중 파이프(|)와 세미콜론(;)을 떠올릴 수가 있다. 파이프는 cmd1 | cmd2 같은 경우에 cmd1의 출력을 cmd2의 입력으로 넣어주지만 세미콜론은 cmd1 ; cmd2 같은 경우에 cmd1을 실행하고 나서 cmd2를 실행하는 기능을 한다. 

autodig를 실행하는 중에 내가 원하는 명령어를 실행시켜야하므로 autodig  string  ; 내가 원하는 명령어 처럼 실행하면 autodig가 종료된 다음에 내가 원하는 명령어를 실행하는 것이므로 안된다.

결론은 dig @ string  version.bind chaos txt 의 string부분에 뭔가 트릭을 써서 내가 원하는 명령을 실행시켜야 한다는 것이다. 

 autodig ;내가 원하는 명령어; 이렇게 실행하면 dig @;내가 원하는 명령어; version.bind chaos txt 가 되어 dig @ 뒤에 내가 원하는 명령어를 실행시킬 수 있다.

마지막 부분에 내가 실수한 이유는 find / -user level4 -perm -4000 2>/dev/null 까지 입력해야하는 데 몰라서 이 부분의 답을 먼저 보았더니 /bin/autodig 까지 입력하여 오류가 났다. 

그래서 답을 볼 때는 제대로 봐서 꼭 이해하도록 노력해야한다고 생각한다. 



기대했던 것과 달리 autodig에 아무런 인자를 전달하지 않았을 때의 출력이 나오고 끝났습니다.

분명히 ;bash; 라는 인자를 전달했는데?
세미콜론 때문에 autodig  명령을 실행 한다음에 bash를 실행 한 거였다.

두 번째 힌트 "문자열 형태로 명령을 전달하려면?"을 보니 알아차렸다. 그리고 문자열 형태로 명령을 전달하려면 "" 쌍따옴표를 사용하면 된다.

autodig ";bash;" 입력 후 my-pass 라고 입력하면 level3 클리어 


'* Wargame > F.T.Z' 카테고리의 다른 글

F.T.Z - level6  (2) 2012.07.05
F.T.Z - level5  (0) 2012.07.05
F.T.Z - level4  (2) 2012.02.28
F.T.Z - level2  (0) 2012.02.09