Overwriting a freed chunk

Sostieni HackTricks

Diverse delle tecniche di sfruttamento dell'heap proposte richiedono la capacità di sovrascrivere puntatori all'interno di chunk liberati. Lo scopo di questa pagina è riassumere le potenziali vulnerabilità che potrebbero concedere questo accesso:

Semplice Uso Dopo la Libera

Se è possibile per l'attaccante scrivere informazioni in un chunk libero, potrebbe sfruttarlo per sovrascrivere i puntatori necessari.

Doppia Libera

Se l'attaccante può free due volte lo stesso chunk (liberare altri chunk nel mezzo potenzialmente) e farlo essere 2 volte nello stesso bin, sarebbe possibile per l'utente allocare il chunk successivamente, scrivere i puntatori necessari e poi allocarlo di nuovo innescando le azioni dell'allocazione del chunk (es. attacco al fast bin, attacco al tcache...)

Sfondamento dell'Heap

Potrebbe essere possibile sforare un chunk allocato avendo successivamente un chunk liberato e modificare alcuni header/puntatori di esso.

Sfondamento di uno in più

In questo caso sarebbe possibile modificare la dimensione del chunk successivo in memoria. Un attaccante potrebbe sfruttare questo per far sì che un chunk allocato abbia una dimensione maggiore, quindi **free**arlo, facendo sì che il chunk venga aggiunto a un bin di una dimensione diversa (più grande), quindi allocare la dimensione falsa, e l'attacco avrà accesso a un chunk con una dimensione maggiore di quella reale, concedendo quindi una situazione di sovrapposizione di chunk, che è sfruttabile allo stesso modo di uno sfondamento dell'heap (controlla la sezione precedente).

Sostieni HackTricks

Last updated