Heap Functions Security Checks

Reading time: 6 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Vir meer inligting, kyk:

unlink

Dit is 'n opsomming van die uitgevoerde kontroles:

  • Kontroleer of die aangeduide grootte van die stuk dieselfde is as die prev_size wat in die volgende stuk aangedui word
  • 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 stuk 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)

_int_malloc

Vir meer inligting, kyk:

malloc & sysmalloc

  • Kontroles tydens vinnige bin soektog:
  • As die stuk nie uitgelijn is nie:
  • Foutboodskap: malloc(): unaligned fastbin chunk detected 2
  • As die vorentoe stuk nie uitgelijn is nie:
  • Foutboodskap: malloc(): unaligned fastbin chunk detected
  • As die teruggegee stuk 'n grootte het wat nie korrek is nie weens sy indeks in die vinnige bin:
  • Foutboodskap: malloc(): memory corruption (fast)
  • As enige stuk wat gebruik word om die tcache te vul nie uitgelijn 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 stuk:
  • As die stuk nie uitgelijn is nie, aktiveer:
  • Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected
  • As die stuk 'n ander grootte het as die een wat dit behoort te wees weens die indeks waarin dit is:
  • Foutboodskap: malloc_consolidate(): invalid chunk size
  • As die vorige stuk nie in gebruik is nie en die vorige stuk 'n grootte het wat verskil van die een aangedui deur prev_chunk:
  • Foutboodskap: corrupted size vs. prev_size in fastbins
  • Kontroles tydens onsortering bin soektog:
  • As die stuk grootte vreemd is (te klein of te groot):
  • Foutboodskap: malloc(): invalid size (unsorted)
  • As die volgende stuk grootte vreemd is (te klein of te groot):
  • Foutboodskap: malloc(): invalid next size (unsorted)
  • As die vorige grootte wat deur die volgende stuk aangedui word verskil van die grootte van die stuk:
  • 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 dit altyd na die arena struktuur wys.
  • As die volgende stuk 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 stuk gebruik:
  • chunksize(av->top) > av->system_mem:
  • Foutboodskap: malloc(): corrupted top size

tcache_get_n

  • Kontroles in tcache_get_n:
  • As die stuk nie uitgelijn is nie:
  • Foutboodskap: malloc(): unaligned tcache chunk detected

tcache_thread_shutdown

  • Kontroles in tcache_thread_shutdown:
  • As die stuk nie uitgelijn is nie:
  • Foutboodskap: tcache_thread_shutdown(): unaligned tcache chunk detected

__libc_realloc

  • Kontroles in __libc_realloc:
  • As die ou pointer nie uitgelijn is nie of die grootte verkeerd was:
  • Foutboodskap: realloc(): invalid pointer

_int_free

Vir meer inligting, kyk:

free

  • Kontroles tydens die begin van _int_free:
  • Pointer is uitgelijn:
  • Foutboodskap: free(): invalid pointer
  • Grootte groter as MINSIZE en grootte ook uitgelijn:
  • Foutboodskap: free(): invalid size
  • Kontroles in _int_free tcache:
  • As daar meer inskrywings is as mp_.tcache_count:
  • Foutboodskap: free(): too many chunks detected in tcache
  • As die inskrywing nie uitgelijn is nie:
  • Foutboodskap: free(): unaligned chunk detected in tcache 2
  • As die vrygestelde stuk reeds vrygestel is en teenwoordig is as 'n stuk in die tcache:
  • Foutboodskap: free(): double free detected in tcache 2
  • Kontroles in _int_free vinnige bin:
  • As die grootte van die stuk ongeldig is (te groot of klein) aktiveer:
  • Foutboodskap: free(): invalid next size (fast)
  • As die bygevoegde stuk reeds die top van die vinnige bin was:
  • Foutboodskap: double free or corruption (fasttop)
  • As die grootte van die stuk aan die top 'n ander grootte het as die stuk wat ons byvoeg:
  • Foutboodskap: invalid fastbin entry (free)

_int_free_merge_chunk

  • Kontroles in _int_free_merge_chunk:
  • As die stuk die top 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:
  • Voeg 'n stuk by die onsortering 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 misaligned fast bin stuk:
  • Foutboodskap: do_check_malloc_state(): unaligned fastbin chunk detected

malloc_consolidate

  • Kontroles in malloc_consolidate:
  • As misaligned fast bin stuk:
  • Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected
  • As verkeerde fast 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

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks