mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
6.3 KiB
6.3 KiB
Verificación de Seguridad de Funciones de Heap
Aprende a hackear AWS desde cero hasta convertirte en un héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
unlink
Esta función elimina un fragmento de una lista doblemente enlazada. Las verificaciones comunes aseguran que la estructura de la lista enlazada permanezca consistente al desvincular fragmentos.
- Verificaciones de Consistencia:
- Verificar si
P->fd->bk == P
yP->bk->fd == P
. - Mensaje de error:
corrupted double-linked list
_int_malloc
Esta función es responsable de asignar memoria desde el heap. Las verificaciones aquí aseguran que la memoria no se corrompa durante la asignación.
- Verificación de Tamaño de Fastbin:
- Al eliminar un fragmento de un fastbin, asegúrate de que el tamaño del fragmento esté dentro del rango de fastbin.
- Mensaje de error:
malloc(): memory corruption (fast)
- Verificación de Consistencia de Smallbin:
- Al eliminar un fragmento de un smallbin, asegúrate de que los enlaces previo y siguiente en la lista doblemente enlazada sean consistentes.
- Mensaje de error:
malloc(): smallbin double linked list corrupted
- Verificación de Rango de Memoria de Unsorted Bin:
- Asegúrate de que el tamaño de los fragmentos en el unsorted bin esté dentro de los límites mínimo y máximo.
- Mensaje de error:
malloc(): memory corruption | malloc(): invalid next size (unsorted)
- Verificación de Consistencia de Unsorted Bin (Primer Escenario):
- Al insertar un fragmento restante en el unsorted bin, verifica si
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Mensaje de error:
malloc(): corrupted unsorted chunks
- Verificación de Consistencia de Unsorted Bin (Segundo Escenario):
- Igual que la verificación anterior, pero se activa al insertar después de dividir un fragmento rápido o pequeño.
- Mensaje de error:
malloc(): corrupted unsorted chunks 2
_int_free
Esta función libera la memoria previamente asignada. Las verificaciones aquí ayudan a garantizar una correcta liberación de memoria y prevenir la corrupción de memoria.
- Verificación de Límites del Puntero:
- Asegúrate de que el puntero que se está liberando no esté envolviendo la memoria.
- Mensaje de error:
free(): invalid pointer
- Verificación de Tamaño:
- Asegúrate de que el tamaño del fragmento que se está liberando sea al menos
MINSIZE
o un múltiplo deMALLOC_ALIGNMENT
. - Mensaje de error:
free(): invalid size
- Verificación de Tamaño de Fastbin:
- Para fragmentos de fastbin, asegúrate de que el tamaño del siguiente fragmento esté dentro de los límites mínimo y máximo.
- Mensaje de error:
free(): invalid next size (fast)
- Verificación de Doble Liberación en Fastbin:
- Al insertar un fragmento en un fastbin, asegúrate de que el fragmento en la cabeza no sea el mismo que el que se está insertando.
- Mensaje de error:
double free or corruption (fasttop)
- Verificación de Consistencia de Fastbin:
- Al insertar en un fastbin, asegúrate de que los tamaños del fragmento en la cabeza y el fragmento que se está insertando sean iguales.
- Mensaje de error:
invalid fastbin entry (free)
- Verificación de Consistencia de Top Chunk:
- Para fragmentos que no son de fastbin, asegúrate de que el fragmento no sea el mismo que el top chunk.
- Mensaje de error:
double free or corruption (top)
- Verificación de Límites de Memoria:
- Asegúrate de que el siguiente fragmento por memoria esté dentro de los límites del área.
- Mensaje de error:
double free or corruption (out)
- Verificación de Bit Prev_inuse:
- Asegúrate de que el bit previo en uso en el siguiente fragmento esté marcado.
- Mensaje de error:
double free or corruption (!prev)
- Verificación de Tamaño Normal:
- Asegúrate de que el tamaño del siguiente fragmento esté dentro de rangos válidos.
- Mensaje de error:
free(): invalid next size (normal)
- Verificación de Consistencia de Unsorted Bin:
- Al insertar un fragmento fusionado en el unsorted bin, verifica si
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
. - Mensaje de error:
free(): corrupted unsorted chunks
Aprende a hackear AWS desde cero hasta convertirte en un héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.