완료됨
접근에 대한 힌트 좀 얻을 수 있을까요?
문제를 확인한 결과 double free는 먹히지 않고, heap overflow도 안 되는 거 같고...할당되지 않은 주소를 double free가 가능하다는 걸 확인했지만 구조상 free에 들어갈 거 같지가 않습니다. uaf는 가능하지만 uaf된 청크에 쓰기는 불가능합니다. 접근 방식을 전혀 모르겠어서 질문 남겨봅니다. 약간의 힌트라도 얻을 수 있을까요?
#pwnable
작성자 정보
답변
1
왔다..
리액션부자
두 가지 풀이가 가능한데,
알고 계신 것과 같이 일반적으로 free된 청크를 다시 free하는 것은 불가능해요
문제에서 free된 이후에도 주소를 갖고 있다는 점과
free된 주소를 다시 alloc으로 얻어올 수 있다는 점을 활용해서 UAF가 가능합니다
두 번째로는 how2heap이라는 곳에 여러 공격 기법들이 존재하는데,
house of botcake란 공격 기법을 분석하시면 실마리가 보일 거예요
https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_botcake.c
해당 환경에 safe linking이라는 보호 기법이 걸려 있는데, 이 점 참고하세용