
드림핵 1레벨 포너블 문제다. 바로 분석 시작하겠다.

PIE도없고, canary도 없는 클린한 상태. 쉘 삽입 불가로 RTL을 생각하고 있는 쪽이 좋겠다.
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
void alarm_handler() {
puts("TIME OUT");
exit(-1);
}
void initialize() {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
signal(SIGALRM, alarm_handler);
alarm(30);
}
void read_flag() {
system("cat flag");
}
int main(int argc, char *argv[]) {
char buf[0x80];
initialize();
gets(buf);
return 0;
}
buf[] 배열에 0x80(128)만큼 할당gets() 함수로 buf[] 배열에 사용자에 입력을 저장함 → BOF 취약점 발생그냥 간단하게 buf[]에 ret_offset+&read_flag 값을 던져주면 플래그를 출력해줄 것 같다.

&read_flag = 0x080485b9
