Hoy, en uno de esos
intentos por escribir algo que no solo tenga que ver con fallos de
seguridad informática me decidí a escribir un post básico sobre las
vulnerabilidades más comunes en aplicaciones web y como sanitizarlas.
Segunda parte de esta entrega, esta vez poniendo solución a fallos relacionados con la inclusión de archivos ejecutables
1. - Inyecciones LFI & RFI (Local/Remote File Include).
Veamos el típico ejemplo de inclusión de archivos de forma dinámica convirtiendose en métodos inseguros.
En ochenta mil sitios van a decir que este código es vulnerable y hay que sanitizar la variable $file, yo digo que no. Lo que no hay es que realizar includes dinámicos directamente para no comprometer el servidor.
Sí, se podría sanitizar pero, ¿hasta que punto lo convertiríamos en un LFI? ¿Realmente es posible?
Claro que es posible filtrar los datos de entrada, pero es que no es
necesario porque el mismo código se podría estructurar de otra forma más
segura. Veamos:
Así y con un poco de código extra se pueden guardar los logs de los
"hackers" que lo intentaron por esa vía y bloquear sus ips o hacer lo
que se crea necesario.
2. - Inyecciones tipo SSI a partir de XSS (Server Side Includes).
Lo más típico, descubrir un fallo tipo XSS en un servidor Apache y
probar si SSI está activado. Es sorprendente la cantidad de servidores
que lo tienen activado y no lo usan, simplemente porque no saben que
está ahí.
Llegados a este punto es fácil saber que de no existir el XSS (All the input is evil - I de III) esto nunca llegaría a funcionar.
Así que para que repetir lo que ya sabemos, cuidado con las inyecciones
tipo Cross Site Scripting porque son más de lo que parecen (nunca
dijimos lo contrario).
Un poco de información sobre SSI };)
All the input is evil - III de III
No hay comentarios:
Publicar un comentario