mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-02 09:29:59 +00:00
4.9 KiB
4.9 KiB
Dom Lore | Mały atak binarny
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Podstawowe informacje
Kod
- Sprawdź ten na stronie 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 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
Cel
- Wstaw fałszywy mały kawałek do małego kubełka, aby można go było zaalokować.
Zauważ, że dodany mały kawałek jest fałszywy, który atakujący tworzy, a nie fałszywy w dowolnej pozycji.
Wymagania
- Utwórz 2 fałszywe kawałki i połącz je ze sobą oraz z prawdziwym kawałkiem w małym kubełku:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(musisz zmodyfikować wskaźnik w zwolnionym małym kawałku kubełka za pomocą innej luki)legit.bk
->fake0
Wtedy będziesz mógł zaalokować fake0
.
Atak
- Zaalokowany jest mały kawałek (
legit
), następnie zaalokowany jest kolejny, aby zapobiec konsolidacji z kawałkiem górnym. Następnielegit
jest zwalniany (przenosząc go na listę nieuporządkowaną), a następnie zaalokowany jest większy kawałek, przenosząclegit
do małego kubełka. - 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 zwolnionym małym kawałku kubełka za pomocą innej luki)legit.bk
->fake0
- Zaalokowany jest mały kawałek, aby uzyskać
legit
, przenoszącfake0
na listę górnych kubełków małych - 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.
Odwołania
- 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
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.