Wargame/FTZ

hackerschool FTZ level3

마띠(쥔장) 2021. 1. 26. 18:24

FTZ level3입니다.

먼저 ls를 통해 hint를 발견했어요. 내용을 봅시다.

autodig의 소스를 안내해주고 있네요.

코드를 간단히 살펴봅시다.

int main(int argc, char **argv){}

main 함수에서는 인자 2개를 받습니다. 아래 모두 main 함수에 포함되는 것들입니다.

char cmd[100];

cmd 라는 이름의 배열을 선언하고

if(argc!=2){
	printf("Auto Digger Version 0.9\n");
	printf("Usage : %s host\n", argv[0]);
	exit(0);
}

만약 인자 값이 2개가 아니면, 

Auto Digger Version 0.9
Usage : [첫번째 인자, 'autodig'가 될 것] host

를 출력합니다.

strcpy(cmd, "dig @");
strcat(cmd, argv[1]);
strcat(cmd, " version.bind chaos txt");

system(cmd);

인자 값이 2개면

system(dig @ [두 번째 인자값] version.bind chaos txt);

이 호출됩니다!

 

그럼 먼저, autodig를 어떻게든 실행시켜 봐야겠죠

먼저 어딨는지 찾아봅시다.

이 곳에 있다네요

해당 디렉터리로 이동해서 목록을 살펴보니 볼 수 있네요

 

일단 그냥 실행시켜봤습니다. 예상대로 "Usage: autodig host"가 되네요

 

그럼 이제 인자를 하나 더 넣어서 autodig를 실행시켜 봅시다.

그 전에, 'more hints'에 대한 답을 찾아봅시다.

동시에 여러 명령어를 사용하려면 -> ;이나 &&를 사용하면 됩니다

;는 앞 명령어가 실패해도 뒷 명령어를 실행시킨다는 점, &&는 앞 명령어가 실패하면 뒷 명령어가 실행되지 않는다는 점을 차이로 둘 수 있겠네요.

문자열 형태로 명령어를 전달하려면 -> "" 를 사용하면 됩니다

 

위 2개의 힌트를 사용해 두 번째 인자 값을 예측해보면,

이렇게 모양을 잡을 수 있습니다. 

문자열 형태로 전달한 ;my-pass가 level4의 패스워드를 보여주고 있네요!

728x90

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

hackerschool FTZ level5  (0) 2021.02.04
hackerschool FTZ level4  (0) 2021.01.28
hackerschool FTZ level2  (0) 2021.01.21
hackerschool FTZ level1  (0) 2021.01.19
hackerschool FTZ trainer10  (0) 2021.01.19