WAR GAME/FTZ

[FTZ] level3 풀이

jir4vvit 2019. 12. 1. 18:26

id : level3

password : can you fly?

 

그림1

ls -al 명령어를 통해 현재 위치에 무슨 파일이 있는지 알아보았다.

저기 보면 hint가 있다

 

cat 명령어를 통해 hint의 내용을 살펴볼까?

 

그림2

코드가 나온다.. 사실 여기서 좀 많이 쫄았다.

 


* 함수 설명

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를 살펴보자

그림 3

- 동시에 여러 명령어를 사용하려면?

: ;(세미콜론)을 이용하여 명령어들을 이어주면 된다.

예를 들어 ls; cd /bin/ 이라는 명령어를 입력하면 ls를 실행하고 나서 cd /bin/을  순차적으로 실행한다.

 

- 문자열 형태로 명령어를 전달하려면?

: 큰따옴표 ""를 이용하면 된다.

왜냐면 문자열 형태로 전달해야하기 때문이다.

 

 

그럼 문제를 풀어보겠다.

우리는  my-pass 명령어로 level4의 패스워드를 알아내야한다.

 

 

그림4

;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