explotando el desbordamiento de búfer

0

Cuando descargo una copia de un programa vulnerable y trato de explotarlo mediante un desbordamiento de búfer (cualquier función interna que llame como carga), funciona. Sin embargo, cuando hice un mismo tipo de programa vulnerable en C, no puedo explotarlo y no tengo idea de lo que está mal. Comprobando en gdb , me doy cuenta de que puedo sobrescribir la dirección de retorno en la pila pero todavía tengo un error de segmentación y no se ejecuta mi dirección deseada.

El programa vulnerable:

#include<stdio.h>

input()
{
    char a[4];

    gets(a);
    puts(a);
}

main()
{
    input();
    printf("\nthis will execute after returning from the function\n");
}


over()
{
    printf("this can only be executed by the hacker");
}

Quiero ejecutar la función over() y usé la carga útil

printf "aaaaaaaa\xb3\x84\x04\x08" | ./my
    
pregunta user38257 23.05.2014 - 06:03
fuente

1 respuesta

1

El problema principal con su código es que no está más vulnerable a un desbordamiento de búfer debido a que el compilador (¿está usando gcc?) reemplazando a gets con fgets

Si ejecuta el código compilado anterior (con entrada maliciosa) debería ver lo que quiero decir.

    
respondido por el grepNstepN 28.06.2016 - 20:01
fuente

Lea otras preguntas en las etiquetas