간단한 코드이다. 프로그램에서 생성된 난수를 올바르게 입력하면 Flag를 얻을 수 있다.
난수를 생성할 때 srand(time(NULL)); 코드를 이용하는데, 이는 '지정한 기준 시각으로부터 얼마나 지났는가'를 기준으로 1초마다 다른 수를 생성한다. '같은 시각에 srand(time(NULL))코드를 돌리면 같은 난수 값이 나올 것이다'라는 가정으로 다른 임의 난수 생성 프로그램을 만들고 그 값을 이 프로그램에 집어넣었다.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand(time(NULL));
int now = rand();
printf("%d", now);
}
$ ./payload ; nc ctf.j0n9hyun.xyz 3014
1306667447============================
======= 인증 프로그램 ======
============================
Input Key : 1306667447
Correct!
HackCTF{5087686686858549173307745189}