BLOG2026-07-11
blog
[🥉 Bronze 3] 저장된 EBP 한 바이트를 지워 셸을 연다 — DreamHack off_by_one_000 풀이
read 는 널을 붙이지 않고 strcpy 는 널까지 복사한다. 이 어긋남을 이용해 256바이트를 가득 채우면 257번째 널이 저장된 EBP 의 최하위 바이트로 새어 들어간다. 한 바이트가 0이 되면서 프레임 포인터가 0x100 아래로 정렬되고, main 의 leave; ret 이 우리가 뿌려둔 get_shell 로 착지한다. 정렬에 따라 확률적이라 셸이 뜰 때까지 재시도했다.
#dreamhack#ctf#pwnable+4