mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
6.1 KiB
6.1 KiB
Sprawdzanie zabezpieczeń funkcji sterty
Nauka hakowania 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 hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
unlink
Ta funkcja usuwa kawałek z dwukierunkowej listy. Powszechne sprawdzenia zapewniają, że struktura listy pozostaje spójna podczas usuwania kawałków.
- Sprawdzenia spójności:
- Sprawdź, czy
P->fd->bk == P
iP->bk->fd == P
. - Komunikat o błędzie:
corrupted double-linked list
_int_malloc
Ta funkcja jest odpowiedzialna za przydzielanie pamięci ze sterty. Sprawdzenia tutaj zapewniają, że pamięć nie jest uszkodzona podczas alokacji.
- Sprawdzenie rozmiaru fastbin:
- Podczas usuwania kawałka z fastbin, upewnij się, że rozmiar kawałka mieści się w zakresie fastbin.
- Komunikat o błędzie:
malloc(): memory corruption (fast)
- Sprawdzenie spójności smallbin:
- Podczas usuwania kawałka z smallbin, upewnij się, że poprzednie i następne odnośniki w dwukierunkowej liście są spójne.
- Komunikat o błędzie:
malloc(): smallbin double linked list corrupted
- Sprawdzenie zakresu pamięci unsorted bin:
- Upewnij się, że rozmiar kawałków w unsorted bin mieści się w granicach minimalnego i maksymalnego limitu.
- Komunikat o błędzie:
malloc(): memory corruption | malloc(): invalid next size (unsorted)
- Sprawdzenie spójności unsorted bin (pierwszy scenariusz):
- Podczas wstawiania pozostałego kawałka do unsorted bin, sprawdź, czy
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Komunikat o błędzie:
malloc(): corrupted unsorted chunks
- Sprawdzenie spójności unsorted bin (drugi scenariusz):
- To samo co poprzednie sprawdzenie, ale wywoływane podczas wstawiania po podziale szybkiego lub małego kawałka.
- Komunikat o błędzie:
malloc(): corrupted unsorted chunks 2
_int_free
Ta funkcja zwalnia wcześniej zaalokowaną pamięć. Sprawdzenia tutaj pomagają zapewnić właściwe zwalnianie pamięci i zapobiegają uszkodzeniom pamięci.
- Sprawdzenie granic wskaźnika:
- Upewnij się, że zwalniany wskaźnik nie owija się wokół pamięci.
- Komunikat o błędzie:
free(): invalid pointer
- Sprawdzenie rozmiaru:
- Upewnij się, że rozmiar zwalnianego kawałka wynosi co najmniej
MINSIZE
lub jest wielokrotnościąMALLOC_ALIGNMENT
. - Komunikat o błędzie:
free(): invalid size
- Sprawdzenie rozmiaru fastbin:
- Dla kawałków fastbin, upewnij się, że rozmiar następnego kawałka mieści się w granicach minimalnego i maksymalnego limitu.
- Komunikat o błędzie:
free(): invalid next size (fast)
- Sprawdzenie podwójnego zwolnienia fastbin:
- Podczas wstawiania kawałka do fastbin, upewnij się, że kawałek na początku nie jest taki sam jak ten, który jest wstawiany.
- Komunikat o błędzie:
double free or corruption (fasttop)
- Sprawdzenie spójności fastbin:
- Podczas wstawiania do fastbin, upewnij się, że rozmiary kawałka głównego i wstawianego kawałka są takie same.
- Komunikat o błędzie:
invalid fastbin entry (free)
- Sprawdzenie spójności top chunk:
- Dla kawałków niebędących fastbin, upewnij się, że kawałek nie jest taki sam jak top chunk.
- Komunikat o błędzie:
double free or corruption (top)
- Sprawdzenie granic pamięci:
- Upewnij się, że następny kawałek pamięci mieści się w granicach areny.
- Komunikat o błędzie:
double free or corruption (out)
- Sprawdzenie bitu prev_inuse:
- Upewnij się, że bit poprzedniego używania w następnym kawałku jest oznaczony.
- Komunikat o błędzie:
double free or corruption (!prev)
- Sprawdzenie normalnego rozmiaru:
- Upewnij się, że rozmiar następnego kawałka mieści się w prawidłowych zakresach.
- Komunikat o błędzie:
free(): invalid next size (normal)
- Sprawdzenie spójności unsorted bin:
- Podczas wstawiania połączonego kawałka do unsorted bin, sprawdź, czy
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Komunikat o błędzie:
free(): corrupted unsorted chunks
Nauka hakowania 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 hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.