id : level3
password : can you fly?
ls -al 명령어를 통해 현재 위치에 무슨 파일이 있는지 알아보았다.
저기 보면 hint가 있다
cat 명령어를 통해 hint의 내용을 살펴볼까?
코드가 나온다.. 사실 여기서 좀 많이 쫄았다.
* 함수 설명
strcpy(a,b) : b를 a에 복사
strcat(a,b) : a 뒤에 b를 이어씀
system(x) : x의 값을 실행함
대충 함수는 이런 뜻이다.
다시 살펴보자면,
결론적으로 cmd 변수에 "dig @" + argv[1] + " version.bind chaos txt" 의 값이 들어가게 되고 system(cmd)를 통해 cmd의 값이 실행이 되게 된다.
참고로 argv[1]은 내가 입력한 값이다.
그럼 dig 명령어?는 뭘까? 아래 더보기를 통해 통해 확인해보자!
* dig 명령이란?
- DNS 네임서버 구성과 도메인 설정이 완료된 후, 일반 사용자의 입장에서 설정한 도메인 네임에 대한 DNS 질의응답이 정상적으로 이루어지는지를 확인 점검하는 경우에 사용한다.
* dig 명령어 기본 문법
dig [@server] [name] [query type]
다시 문제로 돌아와서, 아래의 more hint를 살펴보자
- 동시에 여러 명령어를 사용하려면?
: ;(세미콜론)을 이용하여 명령어들을 이어주면 된다.
예를 들어 ls; cd /bin/ 이라는 명령어를 입력하면 ls를 실행하고 나서 cd /bin/을 순차적으로 실행한다.
- 문자열 형태로 명령어를 전달하려면?
: 큰따옴표 ""를 이용하면 된다.
왜냐면 문자열 형태로 전달해야하기 때문이다.
그럼 문제를 풀어보겠다.
우리는 my-pass 명령어로 level4의 패스워드를 알아내야한다.
;my-pass를 넣음으로써 cmd의 값은 dig @;my-pass version.bind chaos txt가 되었다.
dig @가 먼저 실행되어 dig: Couldn't find server '' : Name or service not known 이라는 오류가 떴고,
그 다음 명령어인 my-pass가 실행되어 Level4 Password is "suck my brain"이 출력되었다.
그리고 그 뒤의 version.bind chaos txt는 무시되었다.
level4의 패스워드는 "suck my brain" 이다 !!!!!!!!!!!!!!!!!!!
'WAR GAME > FTZ' 카테고리의 다른 글
[FTZ] level5 풀이 (0) | 2020.03.12 |
---|---|
[FTZ] level4 풀이 (0) | 2020.03.12 |
[FTZ] level2 풀이 (0) | 2019.09.08 |
[FTZ] level1 풀이 (0) | 2019.09.07 |
[FTZ] Trainer 6~10 요약 (0) | 2019.09.07 |