House of Lore | Small bin Attack
Reading time: 2 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
코드
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/에서 확인하세요.
- 이건 작동하지 않습니다.
- 또는: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- 이건 일부 검사를 우회하려고 시도하더라도 작동하지 않으며, 오류가 발생합니다:
malloc(): unaligned tcache chunk detected
- 이 예제는 여전히 작동합니다: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
목표
- 작은 빈에 가짜 작은 청크를 삽입하여 할당할 수 있도록 합니다.
추가된 작은 청크는 공격자가 생성한 가짜 청크이며, 임의의 위치에 있는 가짜 청크가 아님을 주의하세요.
요구 사항
- 2개의 가짜 청크를 생성하고 이를 서로 연결하고 작은 빈의 정품 청크와 연결합니다:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(다른 취약점을 통해 해제된 작은 빈 청크의 포인터를 수정해야 합니다)legit.bk
->fake0
그럼 fake0
을 할당할 수 있게 됩니다.
공격
- 작은 청크(
legit
)가 할당되고, 그 다음에 다른 청크가 할당되어 상단 청크와 통합되지 않도록 합니다. 그런 다음,legit
가 해제되어(정렬되지 않은 빈 목록으로 이동) 더 큰 청크가 할당되며,legit
가 작은 빈으로 이동합니다. - 공격자는 몇 개의 가짜 작은 청크를 생성하고, 정상성 검사를 우회하기 위해 필요한 연결을 만듭니다:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(다른 취약점을 통해 해제된 작은 빈 청크의 포인터를 수정해야 합니다)legit.bk
->fake0
- 작은 청크가 할당되어
legit
를 얻고, **fake0
**이 작은 빈의 상단 목록으로 들어갑니다. - 또 다른 작은 청크가 할당되어
fake0
가 청크로 할당되어 내부의 포인터를 읽거나 쓸 수 있게 됩니다.
참조
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.