Array Indexing
Osnovne informacije
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 dobre 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 drugi, 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 adresomsystem
, i pozivanje free iz memorije sa/bin/sh
.64 bita, bez nx. Prepisivanje veličine kako bi se dobio vrsta prelivanja bafera gde će sve biti korišćeno kao dupli broj i sortirano od najmanjeg do najvećeg, pa 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 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 za skok 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 sapop rdi; ret
, a na stek je dodata adresamain
(ponovno usmeravanje namain
). Koristi se ROP lanac za procurivanje adrese put u GOT-u koristeći puts (exit
će biti pozvan pa će pozvatipop rdi; ret
i time 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 prelivanja bafera za izvršavanje ret2lib pozivajući
system('/bin/sh')
(potrebna je adresa hipa za zaobilaženje provere).
Last updated