House of Lore | Small bin Attack
기본 정보
코드
작동하지 않음
이것도 작동하지 않음. 오류 발생:
malloc(): unaligned tcache chunk detected
목표
작은 bin에 가짜 small chunk를 삽입하여 할당할 수 있도록 함. 작성된 small chunk가 공격자가 만든 가짜이며 임의 위치에 있는 가짜가 아님을 유의.
요구 사항
2개의 가짜 chunk를 생성하고 연결하고 작은 bin의 합법적인 chunk와 함께 연결:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(다른 취약점을 통해 해제된 small bin chunk의 포인터 수정 필요)legit.bk
->fake0
그럼 fake0
를 할당할 수 있게 됨.
공격
작은 chunk(
legit
)가 할당되고, 다른 chunk가 최상위 chunk와 병합되는 것을 방지하기 위해 또 다른 chunk가 할당됨. 그런 다음,legit
이 해제됨(정렬되지 않은 bin 목록으로 이동) 및 더 큰 chunk가 할당되어legit
이 small bin으로 이동함.공격자는 몇 개의 가짜 small chunk를 생성하고 필요한 링크를 만들어 정상성 검사를 우회:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(다른 취약점을 통해 해제된 small bin chunk의 포인터 수정 필요)legit.bk
->fake0
작은 chunk가 할당되어 legit을 얻고, **
fake0
**이 small bin의 상단 목록으로 이동다른 작은 chunk가 할당되어
fake0
을 chunk로 얻어, 내부의 포인터를 읽거나 쓸 수 있음.
참고 자료
Last updated