Heap Overflow
Información Básica
Un desbordamiento de montón es como un desbordamiento de pila pero en el montón. Básicamente significa que se reservó un espacio en el montón para almacenar algunos datos y los datos almacenados eran más grandes que el espacio reservado.
En los desbordamientos de pila sabemos que algunos registros como el puntero de instrucción o el marco de pila se van a restaurar desde la pila y podría ser posible abusar de esto. En el caso de los desbordamientos de montón, no hay ninguna información sensible almacenada por defecto en el fragmento de montón que puede ser desbordado. Sin embargo, podría ser información sensible o punteros, por lo que la críticalidad de esta vulnerabilidad depende de qué datos podrían ser sobrescritos y cómo un atacante podría abusar de esto.
Para encontrar los desbordamientos de montón puedes usar los mismos patrones que en los desbordamientos de pila.
Ejemplo ARM64
En la página https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/ puedes encontrar un ejemplo de desbordamiento de montón donde un comando que se va a ejecutar se almacena en el fragmento siguiente al fragmento desbordado. Por lo tanto, es posible modificar el comando ejecutado sobrescribiéndolo con un exploit sencillo como:
Última actualización