Heap Functions Security Checks
Last updated
Last updated
Jifunze na zoezi la Udukuzi wa AWS:Mafunzo ya HackTricks ya Mtaalam wa Timu Nyekundu ya AWS (ARTE) Jifunze na zoezi la Udukuzi wa GCP: Mafunzo ya HackTricks ya Mtaalam wa Timu Nyekundu ya GCP (GRTE)
Kwa maelezo zaidi angalia:
unlinkHii ni muhtasari wa ukaguzi uliofanywa:
Angalia ikiwa ukubwa ulioonyeshwa wa kipande ni sawa na prev_size
iliyoorodheshwa kwenye kipande kifuatacho
Ujumbe wa kosa: corrupted size vs. prev_size
Angalia pia kwamba P->fd->bk == P
na P->bk->fw == P
Ujumbe wa kosa: corrupted double-linked list
Ikiwa kipande si kidogo, angalia kwamba P->fd_nextsize->bk_nextsize == P
na P->bk_nextsize->fd_nextsize == P
Ujumbe wa kosa: corrupted double-linked list (siyo kidogo)
Kwa maelezo zaidi angalia:
malloc & sysmallocUkaguzi wakati wa utafutaji wa bakuli la haraka:
Ikiwa kipande hakiko sawa:
Ujumbe wa kosa: malloc(): unaligned fastbin chunk detected 2
Ikiwa kipande cha mbele hakiko sawa:
Ujumbe wa kosa: malloc(): unaligned fastbin chunk detected
Ikiwa kipande kilichorudishwa kina ukubwa usio sahihi kwa sababu ya indeksi yake kwenye bakuli la haraka:
Ujumbe wa kosa: malloc(): memory corruption (fast)
Ikiwa kipande chochote kilichotumika kujaza tcache hakiko sawa:
Ujumbe wa kosa: malloc(): unaligned fastbin chunk detected 3
Ukaguzi wakati wa utafutaji wa bakuli dogo:
Ikiwa victim->bk->fd != victim
:
Ujumbe wa kosa: malloc(): smallbin double linked list corrupted
Ukaguzi wakati wa kujumuisha kufanywa kwa kila kipande cha bakuli la haraka:
Ikiwa kipande hakiko sawa:
Ujumbe wa kosa: malloc_consolidate(): unaligned fastbin chunk detected
Ikiwa kipande kina ukubwa tofauti na ile inavyopaswa kuwa kwa sababu ya indeksi yake:
Ujumbe wa kosa: malloc_consolidate(): invalid chunk size
Ikiwa kipande kilichotangulia hakitumiwi na kipande kilichotangulia kina ukubwa tofauti na ule ulioonyeshwa na prev_chunk:
Ujumbe wa kosa: corrupted size vs. prev_size in fastbins
Ukaguzi wakati wa utafutaji wa bakuli lisilo panga:
Ikiwa ukubwa wa kipande ni wa ajabu (mdogo sana au mkubwa sana):
Ujumbe wa kosa: malloc(): invalid size (unsorted)
Ikiwa ukubwa wa kipande kifuatacho ni wa ajabu (mdogo sana au mkubwa sana):
Ujumbe wa kosa: malloc(): invalid next size (unsorted)
Ikiwa ukubwa uliotangulia ulioonyeshwa na kipande kifuatacho unatofautiana na ukubwa wa kipande:
Ujumbe wa kosa: malloc(): mismatching next->prev_size (unsorted)
Ikiwa si victim->bck->fd == victim
au si victim->fd == av (arena)
:
Ujumbe wa kosa: malloc(): unsorted double linked list corrupted
Kwa kuwa tunakagua daima ya mwisho, fd yake inapaswa kuwa ikielekeza daima kwa muundo wa uwanja.
Ikiwa kipande kifuatacho hakionyeshi kuwa kilichotangulia kina matumizi:
Ujumbe wa kosa: malloc(): invalid next->prev_inuse (unsorted)
Ikiwa fwd->bk_nextsize->fd_nextsize != fwd
:
Ujumbe wa kosa: malloc(): largebin double linked list corrupted (nextsize)
Ikiwa fwd->bk->fd != fwd
:
Ujumbe wa kosa: malloc(): largebin double linked list corrupted (bk)
Ukaguzi wakati wa utafutaji wa bakuli kubwa (kwa indeksi):
bck->fd-> bk != bck
:
Ujumbe wa kosa: malloc(): corrupted unsorted chunks
Ukaguzi wakati wa utafutaji wa bakuli kubwa (kifuatacho kikubwa):
bck->fd-> bk != bck
:
Ujumbe wa kosa: malloc(): corrupted unsorted chunks2
Ukaguzi wakati wa matumizi ya Kipande cha Juu:
chunksize(av->top) > av->system_mem
:
Ujumbe wa kosa: malloc(): corrupted top size
tcache_get_n
Ukaguzi katika tcache_get_n
:
Ikiwa kipande hakiko sawa:
Ujumbe wa kosa: malloc(): unaligned tcache chunk detected
tcache_thread_shutdown
Ukaguzi katika tcache_thread_shutdown
:
Ikiwa kipande hakiko sawa:
Ujumbe wa kosa: tcache_thread_shutdown(): unaligned tcache chunk detected
__libc_realloc
Ukaguzi katika __libc_realloc
:
Ikiwa kidole cha zamani hakiko sawa au ukubwa ulikuwa usio sahihi:
Ujumbe wa kosa: realloc(): invalid pointer
_int_free
Kwa maelezo zaidi angalia:
freeUkaguzi wakati wa kuanza kwa _int_free
:
Kidole kinaelekezwa:
Ujumbe wa kosa: free(): invalid pointer
Ukubwa mkubwa kuliko MINSIZE
na ukubwa pia unaelekezwa:
Ujumbe wa kosa: free(): invalid size
Ukaguzi katika _int_free
tcache:
Ikiwa kuna vitu zaidi kuliko mp_.tcache_count
:
Ujumbe wa kosa: free(): too many chunks detected in tcache
Ikiwa kuingia hakielekezwi:
Ujumbe wa kosa: free(): unaligned chunk detected in tcache 2
Ikiwa kipande kilichofutwa tayari kimefutwa na kipo kama kipande katika tcache:
Ujumbe wa kosa: free(): double free detected in tcache 2
Ukaguzi katika _int_free
bakuli la haraka:
Ikiwa ukubwa wa kipande ni batili (mkubwa sana au mdogo) trigger:
Ujumbe wa kosa: free(): invalid next size (fast)
Ikiwa kipande kilichoongezwa kilikuwa tayari juu ya bakuli la haraka:
Ujumbe wa kosa: double free or corruption (fasttop)
Ikiwa ukubwa wa kipande kilicho juu una ukubwa tofauti na kipande tunachoongeza:
Ujumbe wa kosa: invalid fastbin entry (free)
_int_free_merge_chunk
Uchunguzi katika _int_free_merge_chunk
:
Ikiwa kipande ni kipande cha juu:
Ujumbe wa kosa: double free or corruption (top)
Ikiwa kipande kinachofuata kipo nje ya mipaka ya uwanja:
Ujumbe wa kosa: double free or corruption (out)
Ikiwa kipande hakijatajwa kama kimeitwa (katika prev_inuse kutoka kipande kinachofuata):
Ujumbe wa kosa: double free or corruption (!prev)
Ikiwa kipande kinachofuata kina ukubwa mdogo sana au mkubwa sana:
Ujumbe wa kosa: free(): invalid next size (normal)
Ikiwa kipande kilichopita hakijatumika, itajaribu kuunganisha. Lakini, ikiwa prev_size
inatofautiana na ukubwa ulioonyeshwa katika kipande kilichopita:
Ujumbe wa kosa: corrupted size vs. prev_size while consolidating
_int_free_create_chunk
Uchunguzi katika _int_free_create_chunk
:
Kuongeza kipande katika benki isiyopangwa, angalia ikiwa unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
:
Ujumbe wa kosa: free(): corrupted unsorted chunks
do_check_malloc_state
Uchunguzi katika do_check_malloc_state
:
Ikiwa kipande cha benki ya haraka kilichopangwa vibaya:
Ujumbe wa kosa: do_check_malloc_state(): unaligned fastbin chunk detected
malloc_consolidate
Uchunguzi katika malloc_consolidate
:
Ikiwa kipande cha benki ya haraka kilichopangwa vibaya:
Ujumbe wa kosa: malloc_consolidate(): unaligned fastbin chunk detected
Ikiwa ukubwa wa kipande cha benki ya haraka sio sahihi:
Ujumbe wa kosa: malloc_consolidate(): invalid chunk size
_int_realloc
Uchunguzi katika _int_realloc
:
Ukubwa ni mkubwa sana au mdogo sana:
Ujumbe wa kosa: realloc(): invalid old size
Ukubwa wa kipande kinachofuata ni mkubwa sana au mdogo sana:
Ujumbe wa kosa: realloc(): invalid next size