Archive

Posts Tagged ‘exploit writing’

Explotación de Format String Bugs

Hoy le llego la hora al Exploit Writing, un tema que me encanta pero por falta de tiempo siempre lo tengo que dejar de lado. Hoy vamos a hablar de un tipo de bugs de la que todos han escuchado hablar, pero pocos saben explotar.

Se trata de los conocidos format string bugs. Estos errores son explotados desde la edad de piedra, pero siempre esta copado aprender algo que no se conoce, así que acá voy a ir anotando mis avances. Encima si ayudo a alguien aunque sea un poco a que entienda esto… entonces doble felicidad.

Antes de comenzar la explicación, voy a pegar una imagen que encontre aca, ese dibujito, resume muy bien cual es el bug 😉

La mayoría de los textos que van a encontrar dando vueltas por internet sobre este tema, explotan todo en Linux y usan el espartano gdb para analizarlo. Encima en ese tiempo no existia la tecla “Impr Pant” por lo tanto no encontras una captura de pantalla ni de suerte :-P.

Vamos a comenzar con un típico programa vulnerable de prueba, para entender la cosa:

#include <stdio.h>

char cookie;

int main(int argc, char **argv) {
char *p;
p = &cookie;
printf(argv[1]);

if(cookie == (char)0xFE) {
printf("\n[+] You are a great exploit writer\n");
} else {
printf("\n[-] -1 for you\n");
}
return 0;
}

Un programa muy simple, definimos una variable cookie a la cual no le asignamos ningún valor, pero la misma es comparada con un valor (0xFE), si es igual te imprime el good boy, sino el bad boy.

Antes de adentrarnos donde esta el error, vamos a comenzar viendo el programa:

Read more…

Advertisements