#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);
}
아까 본 Welcome To DreamHack Wargame! 이라는 문구를 출력한 후, 파일 포인터를 이용해서 /flag 파일을 읽어온 뒤, 유저에게 열어서 보여준다.
이 문제는 서버에 접속만 가능하다면 바로 풀 수 있는 문제이다.
즉, 우분투를 이용해서 드림핵에서 발급받은 서버에 접속하면 된다.
서버에 접속하는 방법은 2가지이다.
웹브라우저를 이용한다. 브라우저 구성은 http://[호스트 이름]:[포트번호] 이렇게 되어있으므로 위 형식을 쓰면된다.
인프런 강의에서 배운 nc [호스트 이름] [포트 번호]를 이용하면 호스트 이름을 가진 컴퓨터에서 실행되고 있는 [포트번호] 프로그램에 접속해줘 라는 뜻이 된다.
우리는 두번째 방법을 이용해야한다.
먼저 nc를 써야하기 때문에 아래 명령어를 설치해준다.
sudo apt-get install netcat

그런 다음 드림핵에서 열은 서버 주소를 이용한다.

끝