Armadura ASCII en un sistema little endian

3

Con respecto a la pregunta: Cómo ¿ASCII-Armoring ayuda a prevenir los ataques de desbordamiento de búfer? :

¿Cómo previene un ataque la región blindada?

Si el byte más significativo de la dirección de retorno es 0x00 , el atacante aún puede cambiarlo porque es el último byte que escribe en el búfer.

Por ejemplo: supongamos que libc:execve reside en 0x00b1ab1a , ahora que tiene la opción de anular el ret de la función, el atacante puede llenar los últimos 4 bytes con 0x1a 0xab 0xb1 0x00 (es decir, donde NULL es el último byte), por lo que la redirección del puntero de instrucciones está dañada y va a libc:execve .

¿Estoy equivocado?

    
pregunta Bush 27.12.2015 - 16:41
fuente

1 respuesta

2

Si el byte más significativo de la dirección de retorno es 0x00, aún puede redirigir la ejecución a execve en su ejemplo, pero no puede especificar ningún argumento porque tiene que estar después de la dirección de execve. Pero esto es imposible si la sobrescritura se detiene en 0x00. Así que el poder de un atacante es muy limitado.

    
respondido por el 40F4 09.07.2017 - 21:01
fuente

Lea otras preguntas en las etiquetas