문제 풀이 환경 : ubuntu 18.04 |
롸업보고 풀었는데, 안봤으면 못 풀었을 것 같다.
주어진 파일은 문제 바이너리 파일!
Analysis
random값과 내가 입력한 input값이 같으면 flag를 출력해 준다.
빨간 네모 친 부분을 잘 모르겠다면 아래 링크 참조!
How to exploit
같은 시간대에 또 다른 프로그램을 실행해도 시스템의 현재 시간을 가져온다.
같은 시간대에 아무 c언어 프로그램에서 rand()를 출력했을 때의 값을 input으로 주면 된다.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
srand(time(0));
int random = rand();
printf("%d\n", random);
return 0;
}
gcc -o rand rand.c
Let's exploit
참고로 &&는 rand가 잘 실행됐을 때 뒤에 nc 명령을 수행한다.
'WAR GAME > HackCTF' 카테고리의 다른 글
[HackCTF : Pwnable] look at me 풀이 (32bit, syscall) (0) | 2021.04.08 |
---|---|
[HackCTF : Pwnable] RTL_Core 풀이 (32bit, RTL) (0) | 2021.04.05 |
[HackCTF : Pwnable] 1966 풀이 (cpp, BOF) (0) | 2021.03.24 |
[HackCTF : Pwnable] poet 풀이 (64bit, BOF) (0) | 2021.03.24 |
[HackCTF : Pwnable] g++ pwn 풀이 (CPP) (0) | 2021.03.16 |