hacktricks/binary-exploitation/heap/heap-functions-security-checks.md

5.8 KiB

Provere bezbednosti funkcija Heap

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Ova funkcija uklanja deo iz dvostruko povezane liste. Uobičajene provere osiguravaju da struktura povezane liste ostane dosledna prilikom uklanjanja delova.

  • Provere doslednosti:
  • Provera da li je P->fd->bk == P i P->bk->fd == P.
  • Poruka o grešci: corrupted double-linked list

_int_malloc

Ova funkcija je odgovorna za dodeljivanje memorije iz hipa. Provere ovde osiguravaju da memorija nije oštećena tokom dodeljivanja.

  • Provera Veličine Fastbin-a:
  • Prilikom uklanjanja dela iz fastbin-a, osigurajte da je veličina dela unutar opsega fastbin-a.
  • Poruka o grešci: malloc(): memory corruption (fast)
  • Provera Doslednosti Smallbin-a:
  • Prilikom uklanjanja dela iz smallbin-a, osigurajte da su prethodna i sledeća veza u dvostruko povezanoj listi dosledne.
  • Poruka o grešci: malloc(): smallbin double linked list corrupted
  • Provera Opsega Memorije Unsorted Bin-a:
  • Osigurajte da je veličina delova u unsorted bin-u unutar minimalnih i maksimalnih granica.
  • Poruka o grešci: malloc(): memory corruption | malloc(): invalid next size (unsorted)
  • Provera Doslednosti Unsorted Bin-a (Prvi Scenario):
  • Prilikom umetanja preostalog dela u unsorted bin, proverite da li je unsorted_chunks(av)->fd->bk == unsorted_chunks(av).
  • Poruka o grešci: malloc(): corrupted unsorted chunks
  • Provera Doslednosti Unsorted Bin-a (Drugi Scenario):
  • Ista provera kao prethodna, ali aktivira se prilikom umetanja nakon deljenja brzog ili malog dela.
  • Poruka o grešci: malloc(): corrupted unsorted chunks 2

_int_free

Ova funkcija oslobađa prethodno dodeljenu memoriju. Provere ovde pomažu u osiguravanju pravilnog oslobađanja memorije i sprečavanju oštećenja memorije.

  • Provera Granica Pokazivača:
  • Osigurajte da pokazivač koji se oslobađa ne obuhvata memoriju.
  • Poruka o grešci: free(): invalid pointer
  • Provera Veličine:
  • Osigurajte da je veličina dela koje se oslobađa barem MINSIZE ili višekratnik MALLOC_ALIGNMENT.
  • Poruka o grešci: free(): invalid size
  • Provera Veličine Fastbin-a:
  • Za fastbin delove, osigurajte da je veličina sledećeg dela unutar minimalnih i maksimalnih granica.
  • Poruka o grešci: free(): invalid next size (fast)
  • Provera Dvostrukog Oslobađanja Fastbin-a:
  • Prilikom umetanja dela u fastbin, osigurajte da deo na početku nije isti kao deo koji se umeće.
  • Poruka o grešci: double free or corruption (fasttop)
  • Provera Doslednosti Fastbin-a:
  • Prilikom umetanja u fastbin, osigurajte da su veličine glavnog dela i dela koji se umeće iste.
  • Poruka o grešci: invalid fastbin entry (free)
  • Provera Doslednosti Top Chunk-a:
  • Za delove koji nisu fastbin, osigurajte da deo nije isti kao top chunk.
  • Poruka o grešci: double free or corruption (top)
  • Provera Granica Memorije:
  • Osigurajte da je sledeći deo po memoriji unutar granica arene.
  • Poruka o grešci: double free or corruption (out)
  • Provera Bita Prev_inuse:
  • Osigurajte da je bit prethodno u upotrebi u sledećem delu označen.
  • Poruka o grešci: double free or corruption (!prev)
  • Provera Normalne Veličine:
  • Osigurajte da je veličina sledećeg dela unutar validnih opsega.
  • Poruka o grešci: free(): invalid next size (normal)
  • Provera Doslednosti Unsorted Bin-a:
  • Prilikom umetanja spojenog dela u unsorted bin, proverite da li je unsorted_chunks(av)->fd->bk == unsorted_chunks(av).
  • Poruka o grešci: free(): corrupted unsorted chunks
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: