본문 바로가기
Systemhacking/Base info

unsorted bin attack

by reindeer002 2023. 6. 2.
728x90

 unsorted bin에 등록된 chunk가 재할당될 때 bin에서 이를 정리하는 과정에서 발생하는데, 이 공격을 통해 우리는 libc의 bins 주소를 획득하거나, 특정 영역에 큰 수를 저장할 수 있다.

 unsorted bin attack을 malloc.c 소스코드와 함께 이해하고 싶다면, 아래의 lazenca 사이트를 참조하라

unsorted bin attack[Korean]

 

unsorted bin attack[Korean] - TechNote - Lazenca.0x0

Excuse the ads! We need some help to keep our site up. List Unsorted bin attack Unsorted bin attack을 이해하기 위해서는 malloc()이 unsorted bin에 등록된 chunk를 재할당 할때 해당 chunk를 unsorted bin의 list에서 삭제하는 방식

www.lazenca.net

아마 시나리오와 함께 보는 것이 이해를 더 쉽게 도울 것이다.


  • Unsorted Chunk를 생성할 수 있어야 함
  • Unsorted bin에 등록된 Free Chunk의 값을 변경하고 
    Free Chunk와 동일한 크기의 Chunk를 요청할 수 있어야 함

정상/공격 시나리오

1. 정상 시나리오

unsorted bin에 chunk가 2개 있는 경우
chunk A가 malloc되는 경우 이를 제거하는 과정


2. 공격 시나리오

chunk A의 bk 값을 임의의 주소로 변경

 해당 공격 시나리오를 확인해보면 fake chunk의 fd 주소 값에
unsorted_chunks(av) 값이 들어가 있는 것을 확인할 수 있다.

만약 우리가 원하는 주소값(fake chunk의 fd)에 어떤 값을 넣고자 한다면,
chunk A의 bk 부분에 "원하는 주소 값 - 0x10"을 넣으면 된다.

 

Refer. https://rninche01.tistory.com/entry/heap-exploit-Unsorted-bin-Attack

728x90

'Systemhacking > Base info' 카테고리의 다른 글

malloc consolidate with Fastbin_Dup Consolidate  (1) 2023.06.04
small bin attack  (0) 2023.06.04
unsafe Unlink in heap  (0) 2022.11.07
Fastbin Double Free  (0) 2021.04.04
Heap Base  (0) 2021.04.03

댓글