personaje, el 17 de junio a las 17:53 me escribiste:
> Hola gente bonita de la lista,
>
> Quería consultarles sobre el uso de printf y flía y la seguridad que
> acarrea su uso.
> Si tengo un string sin caracteres de formato (o que asumo que no trae
> caracteres de formato) y siempre pongo el último de los parametros como 0,
> qué problema me puedo llegar a encontrar. El string es variable y su origen
> desconocido, ej:
>
> ...
> char dest[2048+1];
> snprintf(dest,2048,string_con_formato,0);
> ...
>
> string_con_formato viene desde el infinito y su contenido es desconocido.
>
> Existe un string_con_formato que pueda comprometer la ejecucion de mi
> programa?
Sin responder tu pregunta, te pregunto yo a vos: qué tiene de malo
strncat()? Digo, para qué ponerse a analizar posibles vulnerabilidades de
algo potencialmente peligroso si esa función hace exactamente lo que
querés y no tenés vulnerabilidad posible (más allá de bugs en la
implementación de strncat() =).
Y, pensandolo brevemente, sí, tiene implicancias de seguridad, probá:
#include <stdio.h>
void f()
{
}
int main()
{
char password[] = "ouch, mi password!!!";
char string_con_formato[] = "%i%s";
char dest[2048 + 1];
snprintf(dest, 2048, string_con_formato, 0);
fwrite(string_con_formato, 2048, 1, stdout);
return 0;
}
Si no explota cuando lo corrés, probablemente puedas leer el texto "ouch, mi
password!!!" por algún lado...
--
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
Your success is measured by your ability to finish things
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion