HyeM

FTZ level3 풀이 본문

Wargame/FTZ

FTZ level3 풀이

Hailey_HyeM207 2020. 3. 7. 21:42

id: level3

pw : can you fly?

ㄴ 드래그 ㄱㄱ

 

1. ls -l

 

2. cat명령어로 hint 파일 읽기

해석 :

argc :

프로그램을 시작했을 때 전해지는 인자의 갯수.

첫번째 인수는 실행파일의 경로로 고정되어 있음.

 

argv :

프로그램이 시작되었을때 넘겨받은 인자. 문자열로 처리함

argv[0]은 파일경로의 값, argv[1]부터 차례대로 인자들이 들어감

 

만약 프로그램 실행시 전해지는 인자의 개수가 2개가 아니면, "Usage: ~ host" 에러 메시지 띄우고 종료

2개라면,

strcpy( cmd, "dig @");  //cmd 배열에 dig @ 복사하고,

strcat( cmd, argv[1] );   // cmd 배열에 입력 두번째 인자([1])를 추가하고,

strcat( cmd, " version.bind chaos txt"); //version.bind chaos txt를 추가한다.

system( cmd );  //cmd의 문자열을 system함수를 이용하여 쉘 명령어로 이용한다.

 

즉, 인자의 개수가 두개라면

dig @ (두번째 인자값) version.bind chaos txt

를 실행한다.

 

 

3. 우선 find 명령어로 level4권한의 파일을 찾아준다.

 

4. /bin/autodig 를 실행해보자.

보면 위에서 봤던 힌트속 코드 내용처럼 Usage 에러가 출력되는 것을 볼 수 있다.

만약, 인자를 추가해서 하면?

위의 결과 처럼나온다.

( dig @ google.com version.bind chaos txt  가 실행된 결과임)

 

 

5. 이 파일이 level4의 권한을 가지고 있다는 것system() 함수를 호출한다는 점을 이용해서, level4의 pw를 알아본다.

/bin/autodig 'google.com;my-pass'

 

( dig @ google.com; my-pass version.bind chaos txt  가 실행된 결과임.

여기서 my-pass는 argument를 받지 않는 명령어라 뒤에는 무시됨.

결론적으로  dig @ google.com 를 하고, my-pass 명령을 하게 된 것이다. )

이때 ' ' 를 이용해야지만, 문자열 형태로 전달할 수 있음!

 

 

level4의 pw : suck my brain

'Wargame > FTZ' 카테고리의 다른 글

FTZ level2 풀이  (0) 2020.03.07
FTZ level1 풀이  (0) 2020.03.07
Comments