반응형
https://dreamhack.io/forum/qna/1305
double_free를 하는 이유는 uaf를 위해서다. 그걸 알고 있기에 modify가 있는 문제에서는 free'd chunk를 그냥 조작하기로 했다.
ubuntu18.04에서 fd를 조작해서 got에 get_shell을 덮는 건 성공했고, 익스에 성공했으나 remote에서는 불가능했다.
그 이유로 위 질문 글을 참고하면
ubuntu20.04에서는
그림에서 entries 뿐만 아니라 counts마저 신경써야 하기 때문에
tcache에 하나 청크를 더 넣어주고 uaf를 해야한다.
그렇지 않으면 처음 free로 count가 1이되고 수정 후
두 번 alloc 해줘야 하는데 0, -1이 되어버려 에러가 발생한다.
count를 2로 만들어야 alloc시 count가 1, 0으로 두 번 할당할 수 있다.
반응형