House of Rabbit
Requisiti
Capacità di modificare il puntatore fd o la dimensione del fast bin: Ciò significa che puoi cambiare il puntatore in avanti di un chunk nel fastbin o la sua dimensione.
Capacità di attivare
malloc_consolidate
: Questo può essere fatto allocando un chunk grande o unendo il chunk superiore, il che costringe l'heap a consolidare i chunk.
Obiettivi
Creare chunk sovrapposti: Per far sì che un chunk si sovrapponga a un altro, consentendo ulteriori manipolazioni dell'heap.
Forgiare chunk falsi: Per ingannare l'allocatore affinché tratti un chunk falso come un chunk legittimo durante le operazioni sull'heap.
Passaggi dell'attacco
POC 1: Modificare la dimensione di un chunk fast bin
Obiettivo: Creare un chunk sovrapposto manipolando la dimensione di un chunk fastbin.
Passo 1: Allocare Chunk
Passo 2: Liberare i Chunk
Passo 3: Modifica della Dimensione del Chunk
Passo 4: Attivare
malloc_consolidate
Allocare un grosso blocco attiva la funzione malloc_consolidate
, unendo i piccoli blocchi nel fast bin. La dimensione manipolata di chunk1
fa sì che si sovrapponga a chunk2
.
Dopo la consolidazione, chunk1
si sovrappone a chunk2
, consentendo ulteriori sfruttamenti.
POC 2: Modificare il puntatore fd
fd
Obiettivo: Creare un blocco falso manipolando il puntatore fd
del fast bin.
Passo 1: Allocare i Blocchi
Spiegazione: Allociamo due chunk, uno più piccolo e uno più grande, per impostare l'heap per il chunk falso.
Passo 2: Creare un chunk falso
Passo 3: Liberare
chunk1
Spiegazione: Liberiamo chunk1
, aggiungendolo alla lista fastbin.
Passo 4: Modifica
fd
dichunk1
Spiegazione: Cambiamo il puntatore in avanti (fd
) di chunk1
in modo che punti al nostro chunk falso all'interno di chunk2
.
Passo 5: Attivare
malloc_consolidate
Allocare di nuovo un grosso blocco attiva malloc_consolidate
, che elabora il blocco falso.
Il blocco falso diventa parte della lista fastbin, rendendolo un blocco legittimo per ulteriori sfruttamenti.
Riassunto
La tecnica della House of Rabbit coinvolge la modifica della dimensione di un blocco fast bin per creare blocchi sovrapposti o la manipolazione del puntatore fd
per creare blocchi falsi. Ciò consente agli attaccanti di forgiare blocchi legittimi nell'heap, consentendo vari tipi di sfruttamento. Comprendere e mettere in pratica questi passaggi migliorerà le tue abilità di sfruttamento dell'heap.
Last updated