Heap Functions Security Checks
Reading time: 5 minutes
tip
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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
unlink
Daha fazla bilgi için kontrol edin:
Yapılan kontrollerin özeti:
- Parçanın belirtilen boyutunun, bir sonraki parçadaki
prev_size
ile aynı olup olmadığını kontrol et - Hata mesajı:
corrupted size vs. prev_size
- Ayrıca
P->fd->bk == P
veP->bk->fw == P
kontrol et - Hata mesajı:
corrupted double-linked list
- Eğer parça küçük değilse,
P->fd_nextsize->bk_nextsize == P
veP->bk_nextsize->fd_nextsize == P
kontrol et - Hata mesajı:
corrupted double-linked list (not small)
_int_malloc
Daha fazla bilgi için kontrol edin:
- Hızlı bin araması sırasında kontroller:
- Eğer parça hizalanmamışsa:
- Hata mesajı:
malloc(): unaligned fastbin chunk detected 2
- Eğer ileri parça hizalanmamışsa:
- Hata mesajı:
malloc(): unaligned fastbin chunk detected
- Eğer döndürülen parçanın boyutu, hızlı bin içindeki indeksinden dolayı doğru değilse:
- 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 kontrolleri:
- Eğer parça hizalanmamışsa tetikle:
- Hata mesajı:
malloc_consolidate(): unaligned fastbin chunk detected
- Eğer parçanın boyutu, içinde bulunduğu indeks nedeniyle farklıysa:
- Hata mesajı:
malloc_consolidate(): invalid chunk size
- Eğer ö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:
- Eğer parça boyutu garipse (çok küçük veya çok büyük):
- Hata mesajı:
malloc(): invalid size (unsorted)
- Eğer bir sonraki parça boyutu garipse (çok küçük veya çok büyük):
- Hata mesajı:
malloc(): invalid next size (unsorted)
- Eğer 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 veyavictim->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
- Üst 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:
_int_free
başlangıcındaki kontroller:- İşaretçi hizalanmış mı:
- 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) tetikle:
- Hata mesajı:
free(): invalid next size (fast)
- Eğer eklenen parça zaten hızlı binin üstüydü:
- Hata mesajı:
double free or corruption (fasttop)
- Eğer üstteki 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 üst parça ise:
- Hata mesajı:
double free or corruption (top)
- Eğer bir sonraki parça arenanın sınırlarının dışındaysa:
- Hata mesajı:
double free or corruption (out)
- Eğer parça kullanılmadı olarak işaretlenmemişse (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ış bine bir parça eklerken,
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
kontrol et: - 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 geçersiz hızlı bin parça boyutu varsa:
- 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
tip
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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.