WWW2Exec - __malloc_hook
Malloc Hook
Como se puede ver en el sitio oficial de GNU, la variable __malloc_hook
es un puntero que apunta a la dirección de una función que será llamada cada vez que se llame a malloc()
almacenada en la sección de datos de la biblioteca libc. Por lo tanto, si esta dirección es sobrescrita con un One Gadget por ejemplo y se llama a malloc
, se llamará al One Gadget.
Para llamar a malloc es posible esperar a que el programa lo llame o llamando a printf("%10000$c")
que asigna demasiados bytes haciendo que libc
llame a malloc para asignarlos en el heap.
Más información sobre One Gadget en:
pageOne GadgetTen en cuenta que los hooks están desactivados para GLIBC >= 2.34. Hay otras técnicas que se pueden utilizar en versiones modernas de GLIBC. Ver: https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md.
Referencias
Última actualización