House of Lore | Small bin Attack
Last updated
Last updated
Ucz się i praktykuj Hacking AWS:HackTricks Szkolenie AWS Red Team Expert (ARTE) Ucz się i praktykuj Hacking GCP: HackTricks Szkolenie GCP Red Team Expert (GRTE)
Sprawdź ten na stronie https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
To nie działa
To również nie działa, nawet jeśli próbuje ominąć pewne kontrole i otrzymuje błąd: malloc(): unaligned tcache chunk detected
Ten przykład wciąż działa: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Wstaw fałszywy mały kawałek do małego pojemnika, aby można go było zaalokować. Zauważ, że dodany mały kawałek to fałszywy kawałek stworzony przez atakującego, a nie fałszywy kawałek w dowolnej pozycji.
Stwórz 2 fałszywe kawałki i połącz je ze sobą oraz z prawdziwym kawałkiem w małym pojemniku:
fake0.bk
-> fake1
fake1.fd
-> fake0
fake0.fd
-> legit
(musisz zmodyfikować wskaźnik w uwolnionym kawałku małego pojemnika za pomocą innej luki)
legit.bk
-> fake0
Wtedy będziesz mógł zaalokować fake0
.
Zaalokowany jest mały kawałek (legit
), następnie zaalokowany jest kolejny, aby zapobiec konsolidacji z kawałkiem górnym. Następnie legit
jest zwalniany (przenosząc go na listę nieuporządkowaną) i zaalokowany jest większy kawałek, przenosząc legit
do małego pojemnika.
Atakujący generuje kilka fałszywych małych kawałków i tworzy potrzebne połączenia, aby ominąć kontrole spójności:
fake0.bk
-> fake1
fake1.fd
-> fake0
fake0.fd
-> legit
(musisz zmodyfikować wskaźnik w uwolnionym kawałku małego pojemnika za pomocą innej luki)
legit.bk
-> fake0
Zaalokowany jest mały kawałek, aby uzyskać legit
, przenosząc fake0
na listę górną małych pojemników
Następnie zaalokowany jest kolejny mały kawałek, uzyskując fake0
jako kawałek, co potencjalnie pozwala na odczyt/zapis wskaźników wewnątrz niego.
Ucz się i praktykuj Hacking AWS:HackTricks Szkolenie AWS Red Team Expert (ARTE) Ucz się i praktykuj Hacking GCP: HackTricks Szkolenie GCP Red Team Expert (GRTE)