tc_idx 질문

안녕하세요. 이번 문제를 풀면서 tc_idx와 관련하여 궁금증이 생겨서 이렇게 질문을 남깁니다.

tcache_dupTcache Poisoning 워게임을 풀 때는 tc_idx를 신경써주지 않았는데,

해당 문제에서만 tc_idx를 신경써줘야 하는 이유가 Ubuntu 버전 차이인가요 ? 아니면 glibc 차이인가요 ?

tc_idx를 쓰지 않는 문제는 도커 파일이 Ubuntu 18.04 libc-2.27.so이고,

이번 문제는 Ubuntu 19.10, libc-2.30.so 입니다.

그리고 tc_idx0일 때, malloc을 하면 어디서 청크를 할당받나요 ?

#pwnable
작성자 정보
답변 1
kimht
공부벌레

안녕하세요, ro님.

힙 공격 기법을 활용할 때 어떤 보호기법을 고려해야 하는가 아닌가는 Glibc 버전 차이를 따라갑니다(그런데 우분투 버전마다 기본적으로 탑재되는 Glibc 버전이 정해져 있습니다).

tc_idx가 0일 때, 0번째 tcache 엔트리에 해제된 청크가 존재하면 해당 청크를 재할당합니다. 만약 0번째 tcache 엔트리에 재사용 가능한 청크가 없으면 tcache가 아닌 다른 방식으로 할당합니다.

감사합니다.

2024.09.05. 16:19
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기