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의 패스워드를 보여주고 있네요!
'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 |