[CTF write up] ACSC CTF 2023 - re : tcache poisoning in Ubuntu 22.04
realloc만 쓸 수 있으며, 만들 수 있는 청크 크기에 제한이 걸려있다. realloc은 아래와 같은 동작을 하기 때문에 사실상 malloc, free 둘다 사용할 수 있다. realloc(0,size) -> malloc(size) realloc(ptr,0) -> free(ptr) 취약점은 realloc(ptr,0)로 free를 하였을때 size > mlist.size 조건문을 통과하지 않아서 mlist 변수에 포인터가 그대로 남는다는 것이다. 이때 해당 dangling 포인터에 대해 realloc(ptr,size) 함수를 실행하면 realloc의 반환값으로 ptr에 들어간 dangling 포인터가 그대로 반환된다. 하지만 실제로 해당 청크는 할당되지 않았기 때문에 그대로 bin list에 들어가 있..
2023.02.26