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 |