House of Lore | Small bin Attack
Reading time: 3 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Podstawowe informacje
Kod
- Sprawdź ten z https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- To nie działa
- Lub: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- To nie działa, nawet jeśli próbuje obejść niektóre kontrole, otrzymując błąd:
malloc(): unaligned tcache chunk detected
- Ten przykład nadal działa: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Cel
- Wstaw fałszywy mały kawałek do małego pojemnika, aby można go było przydzielić.
Zauważ, że dodany mały kawałek jest fałszywy, który tworzy atakujący, a nie fałszywy w dowolnej pozycji.
Wymagania
- Utwórz 2 fałszywe kawałki i połącz je ze sobą oraz z legalnym kawałkiem w małym pojemniku:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(musisz zmodyfikować wskaźnik w zwolnionym małym kawałku za pomocą innej luki)legit.bk
->fake0
Wtedy będziesz mógł przydzielić fake0
.
Atak
- Mały kawałek (
legit
) jest przydzielany, następnie przydzielany jest inny, aby zapobiec konsolidacji z górnym kawałkiem. Następnielegit
jest zwalniany (przenosząc go do listy nieposortowanej) i przydzielany jest większy kawałek, przenosząclegit
do małego pojemnika. - Atakujący generuje kilka fałszywych małych kawałków i dokonuje potrzebnych połączeń, aby obejść kontrole:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(musisz zmodyfikować wskaźnik w zwolnionym małym kawałku za pomocą innej luki)legit.bk
->fake0
- Mały kawałek jest przydzielany, aby uzyskać legit, co sprawia, że
fake0
staje się górną listą małych pojemników - Inny mały kawałek jest przydzielany, uzyskując
fake0
jako kawałek, co potencjalnie pozwala na odczyt/zapis wskaźników wewnątrz niego.
Odniesienia
- 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
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.