mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
6.1 KiB
6.1 KiB
Controlli di sicurezza delle funzioni di heap
Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repository di Github.
unlink
Questa funzione rimuove un chunk da una lista doppiamente collegata. I controlli comuni garantiscono che la struttura della lista collegata rimanga consistente durante lo scollegamento dei chunk.
- Controlli di coerenza:
- Verifica se
P->fd->bk == P
eP->bk->fd == P
. - Messaggio di errore:
corrupted double-linked list
_int_malloc
Questa funzione è responsabile dell'allocazione di memoria dall'heap. I controlli qui garantiscono che la memoria non venga corrotta durante l'allocazione.
- Controllo della dimensione di Fastbin:
- Quando si rimuove un chunk da un fastbin, assicurarsi che la dimensione del chunk sia nell'intervallo del fastbin.
- Messaggio di erroro:
malloc(): memory corruption (fast)
- Controllo di coerenza di Smallbin:
- Quando si rimuove un chunk da un smallbin, assicurarsi che i collegamenti precedente e successivo nella lista doppiamente collegata siano coerenti.
- Messaggio di errore:
malloc(): smallbin double linked list corrupted
- Controllo dell'intervallo di memoria di Unsorted Bin:
- Assicurarsi che la dimensione dei chunk nell'unsorted bin sia compresa nei limiti minimi e massimi.
- Messaggio di errore:
malloc(): memory corruption | malloc(): invalid next size (unsorted)
- Controllo di coerenza di Unsorted Bin (Primo Scenario):
- Quando si inserisce un chunk di resto nell'unsorted bin, controllare se
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Messaggio di errore:
malloc(): corrupted unsorted chunks
- Controllo di coerenza di Unsorted Bin (Secondo Scenario):
- Come il controllo precedente, ma attivato quando si inserisce dopo aver diviso un chunk veloce o piccolo.
- Messaggio di errore:
malloc(): corrupted unsorted chunks 2
_int_free
Questa funzione libera la memoria precedentemente allocata. I controlli qui aiutano a garantire una corretta deallocazione della memoria e a prevenire la corruzione della memoria.
- Controllo dei limiti del puntatore:
- Assicurarsi che il puntatore liberato non si avvolga attorno alla memoria.
- Messaggio di errore:
free(): invalid pointer
- Controllo della dimensione:
- Assicurarsi che la dimensione del chunk liberato sia almeno
MINSIZE
o un multiplo diMALLOC_ALIGNMENT
. - Messaggio di errore:
free(): invalid size
- Controllo della dimensione di Fastbin:
- Per i chunk fastbin, assicurarsi che la dimensione del chunk successivo sia nei limiti minimi e massimi.
- Messaggio di errore:
free(): invalid next size (fast)
- Controllo di Double Free di Fastbin:
- Quando si inserisce un chunk in un fastbin, assicurarsi che il chunk in testa non sia lo stesso di quello inserito.
- Messaggio di errore:
double free or corruption (fasttop)
- Controllo di coerenza di Fastbin:
- Quando si inserisce in un fastbin, assicurarsi che le dimensioni del chunk in testa e del chunk inserito siano uguali.
- Messaggio di errore:
invalid fastbin entry (free)
- Controllo di coerenza del Top Chunk:
- Per i chunk non fastbin, assicurarsi che il chunk non sia lo stesso del top chunk.
- Messaggio di errore:
double free or corruption (top)
- Controllo dei limiti di memoria:
- Assicurarsi che il chunk successivo per memoria sia nei limiti dell'arena.
- Messaggio di errore:
double free or corruption (out)
- Controllo del bit Prev_inuse:
- Assicurarsi che il bit precedente-in-uso nel chunk successivo sia contrassegnato.
- Messaggio di errore:
double free or corruption (!prev)
- Controllo della dimensione normale:
- Assicurarsi che la dimensione del chunk successivo sia nei range validi.
- Messaggio di errore:
free(): invalid next size (normal)
- Controllo di coerenza di Unsorted Bin:
- Quando si inserisce un chunk fuso nell'unsorted bin, controllare se
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Messaggio di errore:
free(): corrupted unsorted chunks
Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repository di Github.