unlink
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Controlla questa ottima spiegazione grafica del processo unlink:
Controlla se la dimensione indicata del chunk è la stessa del prev_size indicato nel chunk successivo
Controlla anche che P->fd->bk == P
e P->bk->fw == P
Se il chunk non è piccolo, controlla che P->fd_nextsize->bk_nextsize == P
e P->bk_nextsize->fd_nextsize == P
Un chunk non collegato non pulisce gli indirizzi allocati, quindi avendo accesso per leggerlo, è possibile leak alcuni indirizzi interessanti:
Libc Leaks:
Se P si trova nella testa della lista doppiamente collegata, bk
punterà a malloc_state
in libc
Se P si trova alla fine della lista doppiamente collegata, fd
punterà a malloc_state
in libc
Quando la lista doppiamente collegata contiene solo un chunk libero, P è nella lista doppiamente collegata, e sia fd
che bk
possono leak l'indirizzo all'interno di malloc_state
.
Heap leaks:
Se P si trova nella testa della lista doppiamente collegata, fd
punterà a un chunk disponibile nell'heap
Se P si trova alla fine della lista doppiamente collegata, bk
punterà a un chunk disponibile nell'heap
Se P è nella lista doppiamente collegata, sia fd
che bk
punteranno a un chunk disponibile nell'heap
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)