BLOG2026-07-31
blog
[🥇 Gold 4] FILE 구조체를 위조해 프로그램이 제 손으로 flag를 뱉게 만들기 — DreamHack _IO_FILE Arbitrary Address Read 풀이
fopen이 돌려준 FILE 포인터가 그대로 read()의 버퍼로 넘어간다. 구조체를 통째로 위조해 fwrite가 내려가는 write(2)의 인자 셋 — fd·소스 주소·길이 — 을 전부 우리 값으로 바꾼다. _fileno=1, _IO_write_base=flag_buf로 두면 프로그램이 자기 flag를 소켓에 써 준다.
#dreamhack#ctf#pwn+5