Heap Functions Security Checks
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)
For more info check:
unlinkThis is a summary of the performed checks:
Proverite da li je naznačena veličina dela ista kao prev_size
naznačena u sledećem delu
Poruka o grešci: corrupted size vs. prev_size
Takođe proverite da li P->fd->bk == P
i P->bk->fw == P
Poruka o grešci: corrupted double-linked list
Ako deo nije mali, proverite da li P->fd_nextsize->bk_nextsize == P
i P->bk_nextsize->fd_nextsize == P
Poruka o grešci: corrupted double-linked list (not small)
For more info check:
malloc & sysmallocProvere tokom brze pretrage binova:
Ako je deo nepravilno poravnat:
Poruka o grešci: malloc(): unaligned fastbin chunk detected 2
Ako je napredni deo nepravilno poravnat:
Poruka o grešci: malloc(): unaligned fastbin chunk detected
Ako vraćeni deo ima veličinu koja nije ispravna zbog svog indeksa u brzom binu:
Poruka o grešci: malloc(): memory corruption (fast)
Ako je bilo koji deo korišćen za popunjavanje tcache nepravilno poravnat:
Poruka o grešci: malloc(): unaligned fastbin chunk detected 3
Provere tokom pretrage malih binova:
Ako victim->bk->fd != victim
:
Poruka o grešci: malloc(): smallbin double linked list corrupted
Provere tokom konsolidacije izvršene za svaki deo brzog bin chunk-a:
Ako je deo nepravilno poravnat, pokrenite:
Poruka o grešci: malloc_consolidate(): unaligned fastbin chunk detected
Ako deo ima drugačiju veličinu od one koju bi trebao imati zbog indeksa u kojem se nalazi:
Poruka o grešci: malloc_consolidate(): invalid chunk size
Ako prethodni deo nije u upotrebi i prethodni deo ima veličinu koja se razlikuje od one naznačene od strane prev_chunk:
Poruka o grešci: corrupted size vs. prev_size in fastbins
Provere tokom pretrage nesortiranih binova:
Ako je veličina dela čudna (previše mala ili prevelika):
Poruka o grešci: malloc(): invalid size (unsorted)
Ako je veličina sledećeg dela čudna (previše mala ili prevelika):
Poruka o grešci: malloc(): invalid next size (unsorted)
Ako se prethodna veličina naznačena sledećim delom razlikuje od veličine dela:
Poruka o grešci: malloc(): mismatching next->prev_size (unsorted)
Ako nije victim->bck->fd == victim
ili nije victim->fd == av (arena)
:
Poruka o grešci: malloc(): unsorted double linked list corrupted
Kako uvek proveravamo poslednji, njegov fd bi trebao uvek da pokazuje na strukturu arena.
Ako sledeći deo ne naznačava da je prethodni u upotrebi:
Poruka o grešci: malloc(): invalid next->prev_inuse (unsorted)
Ako fwd->bk_nextsize->fd_nextsize != fwd
:
Poruka o grešci: malloc(): largebin double linked list corrupted (nextsize)
Ako fwd->bk->fd != fwd
:
Poruka o grešci: malloc(): largebin double linked list corrupted (bk)
Provere tokom pretrage velikih binova (po indeksu):
bck->fd-> bk != bck
:
Poruka o grešci: malloc(): corrupted unsorted chunks
Provere tokom pretrage velikih binova (sledeći veći):
bck->fd-> bk != bck
:
Poruka o grešci: malloc(): corrupted unsorted chunks2
Provere tokom korišćenja Top chunk-a:
chunksize(av->top) > av->system_mem
:
Poruka o grešci: malloc(): corrupted top size
tcache_get_n
Provere u tcache_get_n
:
Ako je deo nepravilno poravnat:
Poruka o grešci: malloc(): unaligned tcache chunk detected
tcache_thread_shutdown
Provere u tcache_thread_shutdown
:
Ako je deo nepravilno poravnat:
Poruka o grešci: tcache_thread_shutdown(): unaligned tcache chunk detected
__libc_realloc
Provere u __libc_realloc
:
Ako je stari pokazivač nepravilno poravnat ili je veličina bila neispravna:
Poruka o grešci: realloc(): invalid pointer
_int_free
For more info check:
freeProvere tokom početka _int_free
:
Pokazivač je poravnat:
Poruka o grešci: free(): invalid pointer
Veličina veća od MINSIZE
i veličina takođe poravnata:
Poruka o grešci: free(): invalid size
Provere u _int_free
tcache:
Ako ima više unosa nego mp_.tcache_count
:
Poruka o grešci: free(): too many chunks detected in tcache
Ako unos nije poravnat:
Poruka o grešci: free(): unaligned chunk detected in tcache 2
Ako je oslobođeni deo već bio oslobođen i prisutan je kao deo u tcache:
Poruka o grešci: free(): double free detected in tcache 2
Provere u _int_free
brzom binu:
Ako je veličina dela neispravna (prevelika ili premala) pokrenite:
Poruka o grešci: free(): invalid next size (fast)
Ako je dodat deo već bio vrh brzog bin-a:
Poruka o grešci: double free or corruption (fasttop)
Ako veličina dela na vrhu ima drugačiju veličinu od dela koji dodajemo:
Poruka o grešci: invalid fastbin entry (free)
_int_free_merge_chunk
Provere u _int_free_merge_chunk
:
Ako je deo vrh deo:
Poruka o grešci: double free or corruption (top)
Ako je sledeći deo van granica arene:
Poruka o grešci: double free or corruption (out)
Ako deo nije označen kao korišćen (u prev_inuse sledećeg dela):
Poruka o grešci: double free or corruption (!prev)
Ako sledeći deo ima premalu ili preveliku veličinu:
Poruka o grešci: free(): invalid next size (normal)
Ako prethodni deo nije u upotrebi, pokušaće da konsoliduje. Ali, ako se prev_size
razlikuje od veličine naznačene u prethodnom delu:
Poruka o grešci: corrupted size vs. prev_size while consolidating
_int_free_create_chunk
Provere u _int_free_create_chunk
:
Dodavanje dela u nesortirani bin, proverite da li unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
:
Poruka o grešci: free(): corrupted unsorted chunks
do_check_malloc_state
Provere u do_check_malloc_state
:
Ako je deo nepravilno poravnat brzog bin-a:
Poruka o grešci: do_check_malloc_state(): unaligned fastbin chunk detected
malloc_consolidate
Provere u malloc_consolidate
:
Ako je deo nepravilno poravnat brzog bin-a:
Poruka o grešci: malloc_consolidate(): unaligned fastbin chunk detected
Ako je veličina dela brzog bin-a neispravna:
Poruka o grešci: malloc_consolidate(): invalid chunk size
_int_realloc
Provere u _int_realloc
:
Veličina je prevelika ili premala:
Poruka o grešci: realloc(): invalid old size
Veličina sledećeg dela je prevelika ili premala:
Poruka o grešci: realloc(): invalid next size
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)