사실 눈치 챘을 수도 있지만 지금까지 올라온 heap 블로그는 dreamhack의 Heap Allocator Exploit 강의를 기반으로 필자가 직접 공부하고 이해하며 이해하기 쉽도록 재구성하여 작성한 것들이다. 그래서 이전 블로그들은 매우 기본적인 공격 방법을 설명한 것이며 공격 조건이나 공격 방법 등의 것들도 정해져있는 것이 아니라 버전마다 바뀌기 때문에 익스플로잇 기법을 외워서 하기는 조금 힘들다. 그래서 추천드리는 사이트가 바로 how2heap 이다.
https://github.com/shellphish/how2heap
이는 shellphish 팀에서 만든 깃허브로, libc 버전 별로 가능한 heap exploit 기법이 자세한 설명과 함께 정리되어있다. 그렇기 때문에 이전 블로그에서 나온 기법을 모두 완벽히 이해하면 다른 기법도 잠깐만 보면 바로바로 습득할 수 있을 것이다. heap exploit 공부를 하면서 중요한 것은 많은 기법을 외우는게 아니라 memory allocator의 구조와 원리를 제대로 이해하하는게 중요하다는 것을 깨닳았다.
아무튼 문제 풀다가 heap 문제를 만나면 우선 해당 바이너리에서 본인이 할 수 있는 것을 파악 한 후에 how2heap에서 문제 라이브러리 버전과 일치하는 버전에 들어가서 적합한 익스플로잇 기법을 찾아서 문제를 해결하면 된다.
필자도 아직 많이 부족하기 때문에 더 열심히 공부할 것이고 좀 복잡한 기법 혹은 테크닉을 공부하게 된다면 정리해서 블로그에 올려보도록 하겠다.
'포너블 > Heap' 카테고리의 다른 글
Tcache memory leak (0) | 2024.12.10 |
---|---|
Tcache House of Spirit (0) | 2024.12.10 |
breaking calloc (0) | 2024.10.12 |
__malloc_hook overwrite (0) | 2024.04.29 |
Heap Feng Shui (0) | 2024.04.29 |