House of Lore | Small bin Attack
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
To nie działa
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
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.
Stwó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
.
Mały kawałek (legit
) jest przydzielany, następnie przydzielany jest inny, aby zapobiec konsolidacji z górnym kawałkiem. Następnie legit
jest zwalniany (przenosząc go do listy nieposortowanych pojemników), a następnie przydzielany jest większy kawałek, przenosząc legit
do małego pojemnika.
Atakujący generuje kilka fałszywych małych kawałków i dokonuje potrzebnych połączeń, aby obejść kontrole sanitarno-epidemiologiczne:
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)