Estoy aprendiendo sobre desbordamientos de búfer y estoy desarrollando mi primer exploit.
Hay un proceso de servidor que escucha un socket y establece un nuevo proceso para cada cliente. El proceso hijo tiene una vulnerabilidad de desbordamiento de búfer que estoy explotando.
Mi exploit funciona si inicio el servidor con gdb, sin embargo, obtengo un error de seguridad cuando el código de exploit se ejecuta si simplemente inicio el servidor sin gdb.
Mi pregunta es: ¿gdb desactiva automáticamente algunos mecanismos de protección, como aslr / stack protection, etc.? ¿Cuál sería una posible explicación de este comportamiento?
He compilado el servidor con -zexecstack -fno-stack-protector, todavía no puedo explotarlo sin gdb.
Esto está en Debian x86. Al ejecutar el servidor con gdb, me refiero a que ejecuto "gdb server" y luego simplemente teclee "ejecutar" en la consola de gdb, sin puntos de interrupción ni nada más. De esta manera mi exploit es exitoso (hace una solicitud de curl a mi servidor)