ptmalloc2의 unsafe unlink 매커니즘 이해


ptmalloc2의 unsafe unlink 매커니즘 이해

미리 알아둘 것 이중 연결 리스트 (자료구조) ptmalloc2 구조 및 특징 이번에는 2.23. 이하 버전(tcache가 없는거)의 glibc에서 발생하는 unlink 매커니즘에 대해 살펴보고, 이 로직을 악용하여 임의 주소에 쓰기(AAW; Arbitrary Address Write)를 하는 방식을 살펴봅시다. 원래라면 실습도 첨부하고 싶긴 한데, 제가 사용하는 Ubuntu에 비해 glibc 2.23.이 워낙 구식 버전이라 환경 구축이 어렵더군요. 그래서 이론적인 설명으로 만족해 봅시다. 이번에 살펴보는 unsafe unlink 공격은 이중 연결 리스트(doubly-linked list) 형태로 관리되는 chunk들에서 어떠한 요소들을 빼낼 때 쓰는 glibc의 unlink 과정에서 발생하는 로직을 공격하는데, 공격자가 악의적으로 삽입한 fake chunk와 다른 인접한 정상적인 chunk간 병합(consolidation)이 일어나면서 발생하게 됩니다. 다만, 이때 동적으로 할당되...


#2_23 #자료 #임의주소쓰기 #이중연결리스트 #이론 #설명 #unsafe_unlink #Ubuntu #ptmalloc2 #prev_inuse #glibc #DDL #bin #AAW #취약점

원문링크 : ptmalloc2의 unsafe unlink 매커니즘 이해