welcome

1 minute read

Question info.

이 문제는 서버에서 작동하고 있는 서비스(welcome)의 바이너리와 소스 코드가 주어집니다.
“접속 정보 보기”를 눌러 서비스 정보를 얻은 후 플래그를 획득하세요.

Function analysis

welcome_1

웹과는 관련이 없는 듯 하다.

Code analysis


#include <stdio.h>

int main(void) {
    
    FILE *fp;
    char buf[0x80] = {};
    size_t flag_len = 0;

    printf("Welcome To DreamHack Wargame!\n");

    fp = fopen("/flag", "r");
    fseek(fp, 0, SEEK_END);
    flag_len = ftell(fp);
    fseek(fp, 0, SEEK_SET);
    fread(buf, 1, flag_len, fp);
    fclose(fp);

    printf("FLAG : ");

    fwrite(buf, 1, flag_len, stdout);
}


서버 측에서 이 C언어로 작성된 파일이 실행되는 듯 하다.
환영한다는 문구와 함께 flag라는 파일에서 플래그를 읽어와서 출력시키는 형태인 것 같다.
어떻게 접근해야 Welcome To DreamHack Wargame!이 나올까??
힌트에 netcat을 사용하라고 되어 있다.

Solve

welcome_2

명령어는 nc host주소 포트번호이다.
단순히 서버에 연결하는 명령어다.

netcat으로 연결만 해도 답을 주는 문제였다.
netcat으로 서버에 연결할 줄 아느냐고 묻는 문제인 것 같다.

댓글남기기