dreamhack 5

[Dreamhack] basic_exploitation_000

개요 요즘 pwnable에 빠져있다. 간간히 임베디드와 리버싱 그리고 프로젝트를 진행하면서 블로그에 정리할 예정이다. 오늘 풀이할 문제는 Dreamhack의 Systemhackig 과정에 있는 문제이다. 전반적으로 풀면서 pwnable에 대해 익히는 계기가 됐다. 문제 파일을 다운받으면, 바이너리 파일과 소스코드를 준다. 소스코드부터 보자. 풀이 #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handl..

Write-up/Wargame 2024.03.24

[Dreamhack] ReturnAddressOverwrite

개요 수준 유지를 하고자 요즘 드림핵을 다시 시작했다. 기본적으로 바이너리 파일과 소스코드를 준다. 바이너리 파일을 보기 전에 소스코드부터 보자. // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL); } int main() { char buf[0x28]; init(); printf("Input: "); scanf..

Write-up/Wargame 2024.03.22

[Dreamhack] Shell_basic

문제 Description 입력한 셸코드를 실행하는 프로그램입니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다. flag 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다. 감 잡기 어려우신 분들은 아래 코드를 가지고 먼저 연습해보세요! 플래그의 형식은 DH{…} 입니다. 분석 이 문제는 shell_basic과 shell_basic.c를 준다. 맨처음 시나리오는 execve를 통해서 shell에 접근하여 하려했으나, 문제를 보면 main함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하게 한다. 따라서 Flag의 위치와 이름을 알고 있기 때..

STUDY/Pwnable 2022.10.21