Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: Santos999 en 24 Febrero 2012, 09:37 am



Título: Opinion sobre esta criptografía
Publicado por: Santos999 en 24 Febrero 2012, 09:37 am
Buenas, llevo un tiempo leyendo este foro y finalmente me he decidido a registrarme.

Una web que indexa pdfs, utiliza urls encriptadas para acceder a ellos. La parte de los parámetros es del estilo:

/Visualizacion.faces?params=YUHRIdq4b1x%2B3%2FgRzNigkBfV0onuK3Xob0mYlyMikjY%2FqR%2BpLvuA3682woRIcGeA%0D%0A

/Visualizacion.faces?params=1NxsJGCtNnmivWcv1xbzhxfV0onuK3Xob0mYlyMikjY%2FqR%2BpLvuA3682woRIcGeA%0D%0A

Veo que hay una parte comun en todas ellas, lo que me despista: fV0onuK3Xob0mYlyMikjY%2FqR%2BpLvuA3682woRIcGeA%0D%0A


Por otro lado, la parte final a partir, a partir %2B imagino que es otra cadena cifrada.


Podéis arrojar un poco de luz sobre el tema?
Saludos!


Título: Re: Opinion sobre esta criptografía
Publicado por: adastra en 24 Febrero 2012, 10:23 am
Bienvenido Santos999
Se trata de un texto cifrado en Base64, un algoritmo simple que permite el cifrado de mensajes utilizando un sistema númerico cuya base es 64. Normalmente "engaña" a usuarios menos experimentados, sin embargo es facilmente decodificable dado que a partir de un texto cifrado, es muy facil reproducir el texto plano. Si lo que se necesita es un mecanismo un poco más "confiable" es recomendable utilizar algoritmos de clave simetrica (MD5, Blowfish, etc.) o directamente utilizar mecanismos de cifrado de clave publica/privada (clave asimetrica).

Por otro lado, viendo tu mensaje,  por que se estan cifrando los parámetros que viajan por GET? es un poco "extraño" ver que se tratan de cifrar los parámetros enviados en una petición HTTP-GET.


Título: Re: Opinion sobre esta criptografía
Publicado por: Santos999 en 24 Febrero 2012, 16:19 pm
Muchas gracias por responder!

Se cifran los parametros para que no se pueda automatizar la obtencion de esos PDF, osea que se tengan que consultar/descargar uno a uno.

Con tus indicaciones he intentado decodificar el texto YUHRIdq4b1x+3/gRzNigkBfV0onuK3Xob0mYlyMikjY/qR+pLvuA3682woRIcGeA con un conversor online base64 to plain text (convirtiendo los %2F y %2B a ascii) sin exito. Sale: aAÑ!Ú¸o\~ßøÌØ ÕÒ‰î+uèoI˜—#"’6?©©.û€ß¯6„Hpg€

Tambien veo que todas las urls acaban con %0D%0A. Imagino que no es parte del texto..

Saludos!


Título: Re: Opinion sobre esta criptografía
Publicado por: adastra en 24 Febrero 2012, 18:40 pm
 lo que veo es que el texto cifrado

YUHRIdq4b1x%2B3%2FgRzNigkBfV0onuK3Xob0mYlyMikjY%2FqR%2BpLvuA3682woRIcGeA%0D%0A

tiene los caracteres que tu indicas %0, %2, los cuales no son soportados por el algoritmo (el cual genera un texto cifrado utilizando los rangos de A-Z, a-z y 0-9) probablemente es debido a que el texto plano original tiene caracteres como "&", "+", "?", "/", etc. De esa forma el algoritmo puede generar un texto cifrado corrupto.
Por otro lado, si lo que intentas hacer cifrando dichos campos es evitar algún tipo de ataque para que no se pueda acceder de forma automática a esos ficheros, es mucho más eficiente utilizar un IDS (Snort o Suricata suelen ser una excelente solución) ademas de utilizar una herramienta como Fail2ban para implementar bloqueos  sobre direcciones IP. Eso si tienes control sobre el servidor o hosting en donde tienes tu aplicación, sino puedes utilizar una de esas herramientas (por restricciones del hosting por ejemplo) y lo tienes que hacer desde tu aplicación, implementar un WAF (Web Application Firewall) seria otra muy buena alternativa, algunas de las librerías existentes que te podrían servir para implementar un WAF en tu aplicación son:

Para PHP: Libreria PHPIDS (también vale mod_security si corre sobre un servidor web Apache)
Para Ruby/Java/Python/.NET: Tienes implementaciones de la librería ESAPI del proyecto OWASP

https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API