Si alguna vez creíste que las imágenes
que te encuentras por la red son inofensivas, temo decirte que estás
equivocado. Con ello, no me refiero a
aquellas falsas imágenes disfrazadas de JPEG o PNG que en realidad muestran ser
un ejecutable, sino imágenes reales que puedes encontrarte navegando por la
red.
A pesar de ser una técnica ya
conocida, está volviendo a utilizarse con relativa frecuencia. Para un
atacante, cualquier método es válido, desde Javascripts adjuntos en un e-mail
hasta documentos de Word con macros ocultas. Esta vez, hablamos de un método
que hace uso de JS, pero se ejecuta sin que el usuario le dé tiempo a
preguntar.
Esta vez nos centraremos en los
ficheros SVG, para los que no los conozcan, es un formato de gráfico vectorial
cuyo formato esta expresado en XML.
Un ejemplo de una imagen SVG que genera
un círculo rojo de radio 50 pixeles:
<svg width="130" height="130"> <circle cx="60" cy="60" r="50" stroke="black" stroke-width="4" fill="red" /> </svg>
Si probáis esto en un navegador,
obtendremos una imagen tal que así...
Una vez visto esto diréis: Bueno, parece útil. Nada más lejos de la realidad, esto puede utilizarse con fines maliciosos...
Es posible introducir código JavaScript que se ejecutará
conforme se cargue la imagen, por lo que quedará camuflado para el usuario y no
necesitará confirmar nada para que este actúe.
Para ello, vamos a poner un
ejemplo que no supone peligro para el usuario, pero si demostrará lo que puede
ocurrir:
<svg width="130" height="130">
<a xlink:href="javascript:alert(location)">
<script>
alert('Hola UAD! :}');
</script>
<circle cx="60" cy="60" r="50" stroke="black" stroke-width="4" fill="red" />
</svg>
Como veis, al abrir el contenido
obtenemos la imagen correspondiente al círculo y la ventanita avisándo de que
se ha ejecutado el JavaScript, pero... ¿Y si no hubiese avisado al usuario? Podría
haberse ejecutado cualquier otra cosa de fondo, como la descarga de un archivo.
Afortunadamente, este tipo de
técnicas tienen lugar dentro de la
Sandbox del navegador, por lo que no
"deberían" escapar de
este, sin embargo pueden llegar a provocar una confusión en el usuario y
ejecutar un binario que el script oculto descargue, o ejecutar otro tipo de
código malicioso que actúe dentro del navegador de la víctima.
Fernando Díaz
No hay comentarios:
Publicar un comentario