전형적인 힙 메뉴이다. malloc메뉴이다. malloc가능한 갯수가 6개로 한정되어있다. free를 할때 배열을 초기화시키지 않음으로서 취약점이 발생한다, show부부인다. 저기 if조건문이 자세히 보면 &&인 것을 볼 수 있다. 즉 oob가 발생하게된다. 익스 방법 1. fastbin크기의 청크 2개 할당(내용에 함수의 got주소도 같이 박아둔다.) 2. fastbin을 double free 함 3. 2번 과정에서 알아낼 수 있는 청크의 주소를 알아내서 oob를 통해 1번에서 박아둔 got주소를 출력해줌으로서 libc를 leak한다. 4, 다시 한번 malloc을 통해 fastbin에 들어가있는 청크를 가져온다. 그리고 그 청크의 fd에 malloc_hook 이전의 fastbin에 맞는 chunk의 ..
전형적인 메뉴를 이용하는 힙문제다. 최대 19번까지 힙을 할당할 수 있고, heap_context배열안에 포인터를 저장한다. oob를 막아났지만, free뒤에 heap_context배열을 초기화시키지 않아서 취약점이 발생한다. free된 힙부분을 볼 수 있어서, 취약점이 생긴다. 1. fastbin에 들어갈 청크 2개 생성 2.unsorted bin에 들어갈만큼의 힙 할당후 해제 3. view로 보아서 libc leak 4.double free bug를 활용해서 fastbin에 들어갈 chunk를 free시킨다. 5. malloc()으로 free한 fastbin에 있던거 1개 할당받고, fd를 malloc_hook부분을 fastbin에 들어갈 크기로 할당할 크기를 잘 맞춰 수정한다. 6. malloc()..