House of Einherjar
Last updated
Last updated
Naučite i vežbajte hakovanje AWS:HackTricks Obuka AWS Crveni Tim Stručnjak (ARTE) Naučite i vežbajte hakovanje GCP: HackTricks Obuka GCP Crveni Tim Stručnjak (GRTE)
Ili sa https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation (možda će biti potrebno popuniti tcache)
Cilj je alocirati memoriju na gotovo bilo kojoj određenoj adresi.
Kreirati lažan blok kada želimo da alociramo blok:
Postaviti pokazivače da pokazuju na sebe kako bi se zaobišle provere ispravnosti
Prekoračenje za jedan bajt sa nulom iz jednog bloka u sledeći kako bi se izmenila oznaka PREV_INUSE
Ukazati u prev_size
zloupotrebljenog bloka sa nulom razliku između njega i lažnog bloka
Veličina lažnog bloka takođe mora biti postavljena iste veličine kako bi se zaobišle provere ispravnosti
Za konstruisanje ovih blokova, biće vam potrebno procurivanje hipa.
Kreiran je A
lažan blok unutar bloka koji kontroliše napadač pokazujući sa fd
i bk
na originalni blok kako bi se zaobišle zaštite
Alocirana su još 2 bloka (B
i C
)
Zloupotrebom prekoračenja za jedan u bloku B
, bit prev in use
se čisti i podaci prev_size
se prepisuju sa razlikom između mesta gde je alociran blok C
, do lažnog bloka A
koji je generisan pre
Ovaj prev_size
i veličina u lažnom bloku A
moraju biti iste kako bi se zaobišle provere.
Zatim, tcache se popunjava
Zatim, C
se oslobađa kako bi se konsolidovao sa lažnim blokom A
Zatim, kreira se novi blok D
koji će početi u lažnom bloku A
i pokrivati blok B
Kuća Einherjar se završava ovde
Ovo se može nastaviti sa brzim bin napadom ili trovanjem Tcache-a:
Oslobodite B
da ga dodate u brzi bin / Tcache
fd
od B
se prepisuje tako da pokazuje na ciljnu adresu zloupotrebom bloka D
(jer sadrži B
unutra)
Zatim, vrše se 2 alokacije i druga će alocirati ciljnu adresu
Nakon oslobađanja pokazivača, njihovi podaci nisu anulirani, pa je i dalje moguće pristupiti njihovim podacima. Stoga je blok smešten u nesortirani bin i procurio je pokazivače koje sadrži (libc procurivanje) a zatim je novi hip smešten u nesortirani bin i procurio je adresu hipa iz pokazivača koje dobija.
Bag prekoračenja nulom u strtok
.
Koristite Kuću Einherjar da biste dobili situaciju preklapanja blokova i završili sa trovanjem Tcache-a kako biste dobili proizvoljno pisanje.