unlink
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Confira esta ótima explicação gráfica do processo unlink:
Verifique se o tamanho indicado do chunk é o mesmo que o prev_size indicado no próximo chunk
Verifique também se P->fd->bk == P
e P->bk->fw == P
Se o chunk não for pequeno, verifique se P->fd_nextsize->bk_nextsize == P
e P->bk_nextsize->fd_nextsize == P
Um chunk não vinculado não limpa os endereços alocados, então, tendo acesso a ele, é possível vazar alguns endereços interessantes:
Vazamentos de Libc:
Se P estiver localizado na cabeça da lista duplamente encadeada, bk
estará apontando para malloc_state
na libc
Se P estiver localizado no final da lista duplamente encadeada, fd
estará apontando para malloc_state
na libc
Quando a lista duplamente encadeada contém apenas um chunk livre, P está na lista duplamente encadeada, e tanto fd
quanto bk
podem vazar o endereço dentro de malloc_state
.
Vazamentos de Heap:
Se P estiver localizado na cabeça da lista duplamente encadeada, fd
estará apontando para um chunk disponível no heap
Se P estiver localizado no final da lista duplamente encadeada, bk
estará apontando para um chunk disponível no heap
Se P estiver na lista duplamente encadeada, tanto fd
quanto bk
estarão apontando para um chunk disponível no heap
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)