Heap Functions Security Checks
Last updated
Last updated
Leer & oefen AWS Hack: HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hack: HackTricks Opleiding GCP Red Team Expert (GRTE)
Vir meer inligting kyk:
unlinkDit is 'n opsomming van die uitgevoerde kontroles:
Kontroleer of die aangeduide grootte van die blok dieselfde is as die prev_size
aangedui in die volgende blok
Foutboodskap: corrupted size vs. prev_size
Kontroleer ook dat P->fd->bk == P
en P->bk->fw == P
Foutboodskap: corrupted double-linked list
As die blok nie klein is nie, kontroleer dat P->fd_nextsize->bk_nextsize == P
en P->bk_nextsize->fd_nextsize == P
Foutboodskap: corrupted double-linked list (not small)
Vir meer inligting kyk:
malloc & sysmallocKontroles tydens vinnige bin-soektog:
As die blok nie belyn is nie:
Foutboodskap: malloc(): unaligned fastbin chunk detected 2
As die voorwaartse blok nie belyn is nie:
Foutboodskap: malloc(): unaligned fastbin chunk detected
As die teruggekeerde blok 'n grootte het wat nie korrek is nie as gevolg van sy indeks in die vinnige bin:
Foutboodskap: malloc(): memory corruption (fast)
As enige blok wat gebruik word om die tcache te vul nie belyn is nie:
Foutboodskap: malloc(): unaligned fastbin chunk detected 3
Kontroles tydens klein bin-soektog:
As victim->bk->fd != victim
:
Foutboodskap: malloc(): smallbin double linked list corrupted
Kontroles tydens konsolidasie uitgevoer vir elke vinnige bin-blok:
As die blok nie belyn is nie, veroorsaak:
Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected
As die blok 'n ander grootte het as die een wat dit behoort te hê as gevolg van die indeks waarin dit is:
Foutboodskap: malloc_consolidate(): invalid chunk size
As die vorige blok nie in gebruik is nie en die vorige blok 'n grootte het wat verskil van die een wat deur prev_chunk aangedui word:
Foutboodskap: corrupted size vs. prev_size in fastbins
Kontroles tydens ongesorteerde bin-soektog:
As die blok se grootte vreemd is (te klein of te groot):
Foutboodskap: malloc(): invalid size (unsorted)
As die grootte van die volgende blok vreemd is (te klein of te groot):
Foutboodskap: malloc(): invalid next size (unsorted)
As die vorige grootte aangedui deur die volgende blok verskil van die grootte van die blok:
Foutboodskap: malloc(): mismatching next->prev_size (unsorted)
As nie victim->bck->fd == victim
of nie victim->fd == av (arena)
nie:
Foutboodskap: malloc(): unsorted double linked list corrupted
Aangesien ons altyd die laaste een kontroleer, moet sy fd altyd na die arena struktuur wys.
As die volgende blok nie aandui dat die vorige in gebruik is nie:
Foutboodskap: malloc(): invalid next->prev_inuse (unsorted)
As fwd->bk_nextsize->fd_nextsize != fwd
:
Foutboodskap: malloc(): largebin double linked list corrupted (nextsize)
As fwd->bk->fd != fwd
:
Foutboodskap: malloc(): largebin double linked list corrupted (bk)
Kontroles tydens groot bin (volgens indeks) soektog:
bck->fd-> bk != bck
:
Foutboodskap: malloc(): corrupted unsorted chunks
Kontroles tydens groot bin (volgende groter) soektog:
bck->fd-> bk != bck
:
Foutboodskap: malloc(): corrupted unsorted chunks2
Kontroles tydens Top blok gebruik:
chunksize(av->top) > av->system_mem
:
Foutboodskap: malloc(): corrupted top size
tcache_get_n
Kontroles in tcache_get_n
:
As blok nie belyn is nie:
Foutboodskap: malloc(): unaligned tcache chunk detected
tcache_thread_shutdown
Kontroles in tcache_thread_shutdown
:
As blok nie belyn is nie:
Foutboodskap: tcache_thread_shutdown(): unaligned tcache chunk detected
__libc_realloc
Kontroles in __libc_realloc
:
As ou wyser nie belyn is nie of die grootte verkeerd was:
Foutboodskap: realloc(): invalid pointer
_int_free
Vir meer inligting kyk:
freeKontroles tydens die begin van _int_free
:
Wysers is belyn:
Foutboodskap: free(): invalid pointer
Grootte groter as MINSIZE
en grootte ook belyn:
Foutboodskap: free(): invalid size
Kontroles in _int_free
tcache:
As daar meer inskrywings as mp_.tcache_count
is:
Foutboodskap: free(): too many chunks detected in tcache
As die inskrywing nie belyn is nie:
Foutboodskap: free(): unaligned chunk detected in tcache 2
As die vrygemaakte blok reeds vrygemaak is en teenwoordig is as blok in die tcache:
Foutboodskap: free(): double free detected in tcache 2
Kontroles in _int_free
vinnige bin:
As die grootte van die blok ongeldig is (te groot of te klein) veroorsaak:
Foutboodskap: free(): invalid next size (fast)
As die bygevoegde blok reeds die boonste van die vinnige bin was:
Foutboodskap: double free or corruption (fasttop)
As die grootte van die blok bo-aan 'n ander grootte het as die blok wat ons byvoeg:
Foutboodskap: invalid fastbin entry (free)
_int_free_merge_chunk
Kontroles in _int_free_merge_chunk
:
As die stuk die boonste stuk is:
Foutboodskap: double free or corruption (top)
As die volgende stuk buite die grense van die arena is:
Foutboodskap: double free or corruption (out)
As die stuk nie gemerk is as gebruik nie (in die prev_inuse van die volgende stuk):
Foutboodskap: double free or corruption (!prev)
As die volgende stuk 'n te klein of te groot grootte het:
Foutboodskap: free(): invalid next size (normal)
As die vorige stuk nie in gebruik is nie, sal dit probeer konsolideer. Maar, as die prev_size
verskil van die grootte wat in die vorige stuk aangedui word:
Foutboodskap: corrupted size vs. prev_size while consolidating
_int_free_create_chunk
Kontroles in _int_free_create_chunk
:
Byvoeging van 'n stuk in die ongesorteerde bin, kontroleer of unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
:
Foutboodskap: free(): corrupted unsorted chunks
do_check_malloc_state
Kontroles in do_check_malloc_state
:
As 'n verkeerd uitgelynede vinnige bin stuk:
Foutboodskap: do_check_malloc_state(): unaligned fastbin chunk detected
malloc_consolidate
Kontroles in malloc_consolidate
:
As 'n verkeerd uitgelynede vinnige bin stuk:
Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected
As die verkeerde vinnige bin stuk grootte:
Foutboodskap: malloc_consolidate(): invalid chunk size
_int_realloc
Kontroles in _int_realloc
:
Grootte is te groot of te klein:
Foutboodskap: realloc(): invalid old size
Grootte van die volgende stuk is te groot of te klein:
Foutboodskap: realloc(): invalid next size