House of Rabbit
Zahtevi
Sposobnost modifikacije pokazivača fd brze binarne ili veličine: To znači da možete promeniti pokazivač napred jednog bloka u brzoj binarnoj ili njegovu veličinu.
Sposobnost pokretanja
malloc_consolidate
: Ovo se može postići ili dodeljivanjem velikog bloka ili spajanjem vršnog bloka, što prisiljava hip da konsoliduje blokove.
Ciljevi
Stvaranje preklapajućih blokova: Da bi jedan blok prekrio drugi, omogućavajući dalje manipulacije hipom.
Lažiranje lažnih blokova: Da bi se varalica ubedio da tretira lažni blok kao legitimni blok tokom operacija hipa.
Koraci napada
POC 1: Modifikacija veličine brze binarne jedinice
Cilj: Stvaranje preklapajućeg bloka manipulacijom veličine brze binarne jedinice.
Korak 1: Dodela Blokova
Korak 2: Oslobađanje delova
Korak 3: Izmena Veličine Čunka
Korak 4: Izazovite
malloc_consolidate
Alociranje velikog bloka pokreće funkciju malloc_consolidate
, spajajući male blokove u brzom binu. Manipulisana veličina chunk1
uzrokuje preklapanje sa chunk2
.
Nakon konsolidacije, chunk1
se preklapa sa chunk2
, omogućavajući dalju eksploataciju.
POC 2: Modifikacija fd
pokazivača
fd
pokazivačaCilj: Kreiranje lažnog bloka manipulacijom brzog bin fd
pokazivača.
Korak 1: Alociranje Blokova
Objašnjenje: Alociramo dva bloka, jedan manji i jedan veći, kako bismo postavili hip za lažni blok.
Korak 2: Kreiranje lažnog bloka
Korak 3: Oslobodite
chunk1
Objašnjenje: Oslobađamo chunk1
, dodajući ga u listu fastbin.
Korak 4: Modifikujemo
fd
odchunk1
Objašnjenje: Menjamo pokazivač unapred (fd
) chunk1
da pokazuje na naš lažni blok unutar chunk2
.
Korak 5: Pokretanje
malloc_consolidate
Alociranje velikog bloka ponovo pokreće malloc_consolidate
, koji obrađuje lažni blok.
Lažni blok postaje deo liste brzih binova, čineći ga legitimnim blokom za dalje iskorišćavanje.
Rezime
Tehnika House of Rabbit uključuje ili modifikovanje veličine bloka brzih binova kako bi se stvorili preklapajući blokovi ili manipulisanje fd
pokazivača kako bi se stvorili lažni blokovi. Ovo omogućava napadačima da falsifikuju legitimne blokove u hipu, omogućavajući različite oblike iskorišćavanja. Razumevanje i vežbanje ovih koraka će unaprediti vaše veštine iskorišćavanja hipa.
Last updated