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, 10:24  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Duda sobreescribiendo carácter \x22
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobreescribiendo carácter \x22  (Leído 1,322 veces)
Khaleth


Desconectado Desconectado

Mensajes: 434



Ver Perfil
Duda sobreescribiendo carácter \x22
« en: 1 Diciembre 2009, 14:22 »

Buenas. Estoy haciendo una pruebilla con un exploit. El programa vulnerable es el siguiente:

Código:
int main(int argc, char *argv[])
{
char *pass="pepe";
char userpass[25];

strcpy(userpass, argv[1]);

if(strcmp(userpass,pass)==0)
{
         printf("Has acertado\n");
}
else
{
         printf("Has fallado\n");
}
return 0;
}

La idea que tenía es lo siguiente:

-Viendo las direcciones de memoria de cada variable he visto que guarda primero la introducida por el usuario y despues la dirección donde tiene almacenada la contraseña.

-Lo suyo es escribir una cadena suficientemente larga que sobreescriba la dirección a la que apunta el *pass.

-El problema es que mi dirección es 0022FEF0 pero luego al ejecutar el exploit me sobreescribe 0000FEF0, es decir, se fuma el 22.

El exploit tiene una cosa más o menos así:

Código:
    dir[0]='\xF0';
    dir[1]='\xFE';
    dir[2]='\x22';
    dir[3]='\x00';
   
    sprintf(ejecutar,"%s (37 caracteres etc...)%c%c%c%c",argv[1],dir[0],dir[1],dir[2],dir[3]);

Vamos que la duda es xq no me pone el 22 ^^.

Gracias y Un Saludete

En línea
>FedeX<

Desconectado Desconectado

Mensajes: 151



Ver Perfil WWW
Re: Duda sobreescribiendo carácter \x22
« Respuesta #1 en: 1 Diciembre 2009, 19:19 »

\x22 (Alt+34) es la comilla doble (")... A la hora de partir la linea de comando, lo que queda después de la comilla queda para el parámetro 2 (argv[2]).

Agrega una barra (\x5C) antes del \x22.. (\xF0\xFE\x5C\x22\x00) y me decís si era eso...
En línea
Khaleth


Desconectado Desconectado

Mensajes: 434



Ver Perfil
Re: Duda sobreescribiendo carácter \x22
« Respuesta #2 en: 1 Diciembre 2009, 20:24 »

Cierto, ahora funciona  ;D

Muchas gracias!
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con caracter de control
.NET
SixToex (Agares) 1 283 Último mensaje 15 Enero 2012, 03:51
por seba123neo
DUDA impresion caracter a caracter con retardo (C)
Programación C/C++
el_nene_kpy 8 640 Último mensaje 5 Febrero 2012, 03:43
por Xandrete
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines