hacktricks/src/binary-exploitation/libc-heap/overwriting-a-freed-chunk.md

1.6 KiB

Prepisivanje oslobođenog dela

{{#include ../../banners/hacktricks-training.md}}

Nekoliko predloženih tehnika eksploatacije heap-a treba da može da prepisuje pokazivače unutar oslobođenih delova. Cilj ove stranice je da sumira potencijalne ranjivosti koje bi mogle omogućiti ovaj pristup:

Jednostavno korišćenje nakon oslobađanja

Ako je moguće da napadač upiše informacije u oslobođeni deo, mogli bi to iskoristiti da prepišu potrebne pokazivače.

Duplo oslobađanje

Ako napadač može da oslobađa isti deo dva puta (oslobađajući druge delove između potencijalno) i učini da bude 2 puta u istom kontejneru, bilo bi moguće da korisnik kasnije alocira deo, upiše potrebne pokazivače i zatim ponovo alocira, pokrećući akcije delova koji se alociraju (npr. brzi bin napad, tcache napad...)

Prelivanje heap-a

Moglo bi biti moguće preliti alocirani deo koji ima pored oslobođeni deo i izmeniti neke zaglavlja/pokazivače.

Prelivanje sa pomerajem od jedan

U ovom slučaju bi bilo moguće izmeniti veličinu sledećeg dela u memoriji. Napadač bi mogao to iskoristiti da napravi alocirani deo sa većom veličinom, zatim oslobađa ga, čineći da deo bude dodato u kontejner druge veličine (veće), zatim alocirati lažnu veličinu, i napad će imati pristup delu sa veličinom koja je veća nego što zaista jeste, omogućavajući tako situaciju preklapanja delova, koja se može iskoristiti na isti način kao prelivanje heap-a (proverite prethodni odeljak).

{{#include ../../banners/hacktricks-training.md}}