728x90

cat hint를 입력하면 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 프로그램의 소스파일이다.

실행파일의 인자로 문자열 형태로 동시에 여러 명령어를 사용해야한다.

c언어 실행파일의 인자값에 다음과 같이 전달하면 된다.

실행파일 "ls;pwd" 이런식으로 전달하면 동시에 여러 명령어를 문자열 형태로 실행파일에 전달가능하다.

;가 명령어의 구분을 해주며 앞에서부터 순차적으로 실행시킨다.

find -user level4 -perm -4000

위의 명령어를 통해 level4 권한의 SetUID가 설정된 파일을 찾는다.

그래야 level4 권한을 이용해 명령어를 실행할 수 있다.

/bin/autodig라는 파일이 나온다.

/bin/autodig ";my-pass;"

위의 명령어를 입력하면 level4 권한으로 my-pass가 실행된다.

내가 입력한 ";my-pass;"는 cmd 배열에 다음과 같은 형태로 저장되고 cmd가 실행된다.

dig @;my-pass; version.bind chaos txt

dig @는 에러 발생한다.

이어서 my-pass가 실행된다. level4의 패스워드가 출력된다.

이어서 version.bind chaos txt가 실행되는데 이런 명령도 없다. 따라서 에러가 발생한다.

참고로 dig는 DNS 서버와 통신을 점검하는 명령이다.

dig @DNS 서버ip version.bind chaos txt 형태로 사용한다.

Level4 Password is "suck my brain".

 

 

728x90

'FTZ' 카테고리의 다른 글

level6  (0) 2023.01.08
level5  (0) 2023.01.08
level4  (0) 2023.01.08
level2  (0) 2023.01.07
level1  (1) 2023.01.07

+ Recent posts