[dreamhack] bof writeup

2025 여름을 맞아서 dreamhack에 있는 워게임을 열심히 풀어보기로 결심했다.
다음 학기에 예정된 CTF 스타일 코스웍 (Gatech CS 6265)이 있기 때문에 미리 선행?하는 겸사겸사
매번 시스템 해킹 공부를 할때마다 모든 것을 잊어버리는 바람에 처음부터 하게되는데, 이번에는 그러지 않기 위해서 블로그 형식으로 기록을 남겨놓고자 한다.

이제 시작!

1. 문제

thumbnail
bof

Buffer overflow is one of the basics of pwnable 🐱 The path of the flag file is /home/bof/flag.

https://dreamhack.io/wargame/challenges/1111

2. 풀이

아예 .c 파일조차 제공하지 않는 쉬운 문제이다. 스택에 0x90만큼 주고, read_cat을 통해 읽은 문자열을 그대로 meow~고양이와 함께 출력한다. 그치만 [rbp-0x10]에 들어있는 값이 read_cat에 인자로 들어가는 듯하다.

read_cat 함수도 보면 인자로 들어간 값 [rbp-0x10]을 파일로 해서 열고, 128bytes를 read로 읽어서 puts로 출력해주는 내용이다. 결국 [rbp-0x10]을 내가 원하는 값으로 잘 덮으면 해당 파일을 출력한다.

우리는 flag를 읽어오는 것이 목표이므로 결국 0x80 바이트를 dummy로 덮어주고, 마지막에 파일 이름으로 flag를 넣어주면 해결될 것이다.

이러면 해결~