Array Indexing
Last updated
Last updated
Naučite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE) Naučite i vežbajte hakovanje GCP-a: HackTricks Training GCP Red Team Expert (GRTE)
Ova kategorija obuhvata sve ranjivosti koje se javljaju zbog mogućnosti prepisivanja određenih podataka putem grešaka u rukovanju indeksima u nizovima. To je veoma široka kategorija bez specifične metodologije, jer mehanizam eksploatacije potpuno zavisi od uslova ranjivosti.
Međutim, ovde možete pronaći neke lepe primere:
Postoje 2 koliziona niza, jedan za adrese gde su podaci smešteni i jedan sa veličinama tih podataka. Moguće je prepisati jedan drugim, omogućavajući pisanje proizvoljne adrese označavajući je kao veličinu. To omogućava pisanje adrese funkcije free
u GOT tabeli, a zatim prepisivanje sa adresom system
, i pozivanje free iz memorije sa /bin/sh
.
64 bita, bez nx. Prepisivanje veličine kako bi se dobio vrsta preplavljivanja bafera gde će svaka stvar biti korišćena kao dupli broj i sortirana od najmanjeg do najvećeg, tako da je potrebno kreirati shellcode koji ispunjava taj zahtev, uzimajući u obzir da kanarina ne sme biti pomerena sa svoje pozicije i na kraju prepisivanje RIP-a sa adresom za povratak, koji ispunjava prethodne zahteve i postavljanje najveće adrese na novu adresu koja pokazuje na početak steka (procureno od strane programa) tako da je moguće koristiti povratak da se skoči tamo.
64 bita, bez relro, kanarine, nx, bez pie-a. Postoji off-by-one u nizu na steku koji omogućava kontrolu pokazivača dodeljujući WWW (upisuje zbir svih brojeva niza na prepisanu adresu off-by-one u nizu). Kontroliše se stek tako da je adresa exit
u GOT-u prepisana sa pop rdi; ret
, a na stek je dodata adresa main
(ponovno usmeravanje na main
). Koristi se ROP lanac za procurivanje adrese put u GOT-u koristeći puts (exit
će biti pozvan tako da će pozvati pop rdi; ret
i izvršiti ovaj lanac na steku). Na kraju se koristi novi ROP lanac za izvršavanje ret2lib.
32 bita, bez relro-a, bez kanarine, nx, pie. Zloupotreba lošeg indeksiranja za procurivanje adresa libc-a i hipa sa steka. Zloupotreba preplavljivanja bafera za izvršavanje ret2lib pozivanjem system('/bin/sh')
(potrebna je adresa hipa za zaobilaženje provere).