[Windows] Heap Overflow
힙 메모리는 스택과 다르게 RET, SEH가 존재하지 않으므로 공격을 성공시키기 위해 여러가지 다양한 기법들이 동원됩니다.주로 힙 메모리에 존재하는 다른 오브젝트, 포인터 및 헤더 등을 덮어쓰는 방법으로 공격합니다. 예제 코드#include #include #include int main() { char* buf1 = (char*)malloc(0x20); char* buf2 = (char*)malloc(0x20); printf("buf1: %p\n", buf1); printf("buf2: %p\n", buf2); memset(buf1, 'A', 0x30); free(buf1); free(buf2); return 0;}32바이트로 동적할당을 합니다.그리고 memset의 buf1의 48바이트를 채워서 buf..