[DreamHack] [Pwnable] basic_exploitation_001

image.png

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

image.png

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[]ret_offset+&read_flag 값을 던져주면 플래그를 출력해줄 것 같다.

image.png

&read_flag = 0x080485b9

image.png