unlink
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Código
Explicación Gráfica
Revisa esta gran explicación gráfica del proceso unlink:
Comprobaciones de Seguridad
Verifica si el tamaño indicado del chunk es el mismo que el prev_size indicado en el siguiente chunk
Verifica también que
P->fd->bk == P
yP->bk->fw == P
Si el chunk no es pequeño, verifica que
P->fd_nextsize->bk_nextsize == P
yP->bk_nextsize->fd_nextsize == P
Fugas
Un chunk desvinculado no limpia las direcciones asignadas, por lo que tener acceso a él permite filtrar algunas direcciones interesantes:
Fugas de Libc:
Si P está ubicado en la cabeza de la lista doblemente enlazada,
bk
apuntará amalloc_state
en libcSi P está ubicado al final de la lista doblemente enlazada,
fd
apuntará amalloc_state
en libcCuando la lista doblemente enlazada contiene solo un chunk libre, P está en la lista doblemente enlazada, y tanto
fd
comobk
pueden filtrar la dirección dentro demalloc_state
.
Fugas de Heap:
Si P está ubicado en la cabeza de la lista doblemente enlazada,
fd
apuntará a un chunk disponible en el heapSi P está ubicado al final de la lista doblemente enlazada,
bk
apuntará a un chunk disponible en el heapSi P está en la lista doblemente enlazada, tanto
fd
comobk
apuntarán a un chunk disponible en el heap
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated