House of Einherjar
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)
Osnovne informacije
Kod
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
Cilj je alocirati memoriju na gotovo bilo kojoj određenoj adresi.
Zahtevi
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 blokaVelič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.
Napad
Kreiran je
A
lažan blok unutar bloka koji kontroliše napadač pokazujući safd
ibk
na originalni blok kako bi se zaobišle zaštiteAlocirana su još 2 bloka (
B
iC
)Zloupotrebom prekoračenja za jedan u bloku
B
, bitprev in use
se čisti i podaciprev_size
se prepisuju sa razlikom između mesta gde je alociran blokC
, do lažnog blokaA
koji je generisan preOvaj
prev_size
i veličina u lažnom blokuA
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 blokomA
Zatim, kreira se novi blok
D
koji će početi u lažnom blokuA
i pokrivati blokB
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 / Tcachefd
odB
se prepisuje tako da pokazuje na ciljnu adresu zloupotrebom blokaD
(jer sadržiB
unutra)Zatim, vrše se 2 alokacije i druga će alocirati ciljnu adresu
Reference i drugi primeri
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.
Last updated