BLOG2026-07-12
blog
[🥈 Silver 4] 인접 힙 청크의 함수 포인터를 넘어 덮다 — DreamHack basic_heap_overflow 풀이
ptr = malloc(0x20) 과 over = malloc(0x20) 이 힙에서 연속으로 잡히는데 scanf("%s", ptr) 에 길이 제한이 없다. ptr 청크를 지나 over 청크의 첫 멤버인 함수 포인터 over->table 까지 덮어, main 끝의 over->table() 호출을 get_shell 로 돌렸다. 오프셋은 타깃 glibc 2.23 기준 0x28(40) 이었고, 로컬 glibc 와 달라 한 번 헤맸다.
#dreamhack#ctf#pwnable+4