Heap Functions Security Checks
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Daha fazla bilgi için kontrol edin:
unlinkYapılan kontrollerin özeti:
Belirtilen parça boyutunun, bir sonraki parçadaki prev_size
ile aynı olup olmadığını kontrol edin
Hata mesajı: corrupted size vs. prev_size
Ayrıca P->fd->bk == P
ve P->bk->fw == P
kontrol edin
Hata mesajı: corrupted double-linked list
Parça küçük değilse, P->fd_nextsize->bk_nextsize == P
ve P->bk_nextsize->fd_nextsize == P
kontrol edin
Hata mesajı: corrupted double-linked list (not small)
Daha fazla bilgi için kontrol edin:
malloc & sysmallocHızlı bin araması sırasında kontroller:
Parça hizalanmamışsa:
Hata mesajı: malloc(): unaligned fastbin chunk detected 2
İleri parça hizalanmamışsa:
Hata mesajı: malloc(): unaligned fastbin chunk detected
Döndürülen parçanın, hızlı bin içindeki indeksinden dolayı doğru olmayan bir boyutu varsa:
Hata mesajı: malloc(): memory corruption (fast)
Tcache'i doldurmak için kullanılan herhangi bir parça hizalanmamışsa:
Hata mesajı: malloc(): unaligned fastbin chunk detected 3
Küçük bin araması sırasında kontroller:
Eğer victim->bk->fd != victim
ise:
Hata mesajı: malloc(): smallbin double linked list corrupted
Her hızlı bin parçası için yapılan konsolidasyon sırasında kontroller:
Parça hizalanmamışsa tetikleyin:
Hata mesajı: malloc_consolidate(): unaligned fastbin chunk detected
Parça, bulunduğu indeks nedeniyle olması gereken boyuttan farklıysa:
Hata mesajı: malloc_consolidate(): invalid chunk size
Önceki parça kullanılmıyorsa ve önceki parçanın boyutu prev_chunk
tarafından belirtilen boyuttan farklıysa:
Hata mesajı: corrupted size vs. prev_size in fastbins
Sıralanmamış bin araması sırasında kontroller:
Parça boyutu garipse (çok küçük veya çok büyük):
Hata mesajı: malloc(): invalid size (unsorted)
Bir sonraki parça boyutu garipse (çok küçük veya çok büyük):
Hata mesajı: malloc(): invalid next size (unsorted)
Bir sonraki parçanın belirttiği önceki boyut, parçanın boyutundan farklıysa:
Hata mesajı: malloc(): mismatching next->prev_size (unsorted)
Eğer victim->bck->fd == victim
değilse veya victim->fd == av (arena)
değilse:
Hata mesajı: malloc(): unsorted double linked list corrupted
Her zaman sonuncusunu kontrol ettiğimiz için, fd'si her zaman arena yapısına işaret etmelidir.
Eğer bir sonraki parça, öncekinin kullanıldığını belirtmiyorsa:
Hata mesajı: malloc(): invalid next->prev_inuse (unsorted)
Eğer fwd->bk_nextsize->fd_nextsize != fwd
ise:
Hata mesajı: malloc(): largebin double linked list corrupted (nextsize)
Eğer fwd->bk->fd != fwd
ise:
Hata mesajı: malloc(): largebin double linked list corrupted (bk)
Büyük bin (indeksle) araması sırasında kontroller:
bck->fd-> bk != bck
:
Hata mesajı: malloc(): corrupted unsorted chunks
Büyük bin (bir sonraki daha büyük) araması sırasında kontroller:
bck->fd-> bk != bck
:
Hata mesajı: malloc(): corrupted unsorted chunks2
Top parça kullanımı sırasında kontroller:
chunksize(av->top) > av->system_mem
:
Hata mesajı: malloc(): corrupted top size
tcache_get_n
tcache_get_n
içindeki kontroller:
Eğer parça hizalanmamışsa:
Hata mesajı: malloc(): unaligned tcache chunk detected
tcache_thread_shutdown
tcache_thread_shutdown
içindeki kontroller:
Eğer parça hizalanmamışsa:
Hata mesajı: tcache_thread_shutdown(): unaligned tcache chunk detected
__libc_realloc
__libc_realloc
içindeki kontroller:
Eğer eski işaretçi hizalanmamışsa veya boyut yanlışsa:
Hata mesajı: realloc(): invalid pointer
_int_free
Daha fazla bilgi için kontrol edin:
free_int_free
'in başlangıcında kontroller:
İşaretçi hizalanmışsa:
Hata mesajı: free(): invalid pointer
Boyut MINSIZE
'dan büyük ve boyut da hizalanmışsa:
Hata mesajı: free(): invalid size
_int_free
tcache içindeki kontroller:
Eğer mp_.tcache_count
'dan fazla giriş varsa:
Hata mesajı: free(): too many chunks detected in tcache
Eğer giriş hizalanmamışsa:
Hata mesajı: free(): unaligned chunk detected in tcache 2
Eğer serbest bırakılan parça zaten serbest bırakılmışsa ve tcache'de parça olarak mevcutsa:
Hata mesajı: free(): double free detected in tcache 2
_int_free
hızlı bin içindeki kontroller:
Eğer parçanın boyutu geçersizse (çok büyük veya küçük) tetikleyin:
Hata mesajı: free(): invalid next size (fast)
Eğer eklenen parça zaten hızlı binin tepe noktasıysa:
Hata mesajı: double free or corruption (fasttop)
Eğer tepedeki parçanın boyutu, eklediğimiz parçanın boyutundan farklıysa:
Hata mesajı: invalid fastbin entry (free)
_int_free_merge_chunk
_int_free_merge_chunk
içindeki kontroller:
Eğer parça tepe parçaysa:
Hata mesajı: double free or corruption (top)
Eğer bir sonraki parça arena sınırlarının dışındaysa:
Hata mesajı: double free or corruption (out)
Eğer parça kullanılmıyorsa (bir sonraki parçanın prev_inuse'inde):
Hata mesajı: double free or corruption (!prev)
Eğer bir sonraki parçanın boyutu çok küçük veya çok büyükse:
Hata mesajı: free(): invalid next size (normal)
Eğer önceki parça kullanılmıyorsa, konsolidasyon yapmaya çalışacaktır. Ancak, prev_size
önceki parçadaki belirtilen boyuttan farklıysa:
Hata mesajı: corrupted size vs. prev_size while consolidating
_int_free_create_chunk
_int_free_create_chunk
içindeki kontroller:
Sıralanmamış bin içine bir parça eklerken, unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
kontrol edin:
Hata mesajı: free(): corrupted unsorted chunks
do_check_malloc_state
do_check_malloc_state
içindeki kontroller:
Eğer hizalanmamış hızlı bin parçası varsa:
Hata mesajı: do_check_malloc_state(): unaligned fastbin chunk detected
malloc_consolidate
malloc_consolidate
içindeki kontroller:
Eğer hizalanmamış hızlı bin parçası varsa:
Hata mesajı: malloc_consolidate(): unaligned fastbin chunk detected
Eğer hızlı bin parça boyutu yanlışsa:
Hata mesajı: malloc_consolidate(): invalid chunk size
_int_realloc
_int_realloc
içindeki kontroller:
Boyut çok büyük veya çok küçükse:
Hata mesajı: realloc(): invalid old size
Bir sonraki parçanın boyutu çok büyük veya çok küçükse:
Hata mesajı: realloc(): invalid next size
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)