Heap Functions Security Checks

Support HackTricks

Kwa maelezo zaidi angalia:

unlink

Hii 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)

_int_malloc

Kwa maelezo zaidi angalia:

malloc & sysmalloc
  • Ukaguzi 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:

free
  • Ukaguzi 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

Last updated