sábado, 22 de marzo de 2014

XSS en Prettyphoto

Hoy vamos a explicar como hacer un XSS (Cross Site Scripting) en una web que tenga el plugin prettyphoto, usada en Joomla y Wordpress para crear slides, galerias, integrar contenido flash, Ajax, iframes y mucho mas.

Así que vamos alla!!

Lo primero seria buscar una web vulnerable, lo mejor es hacerlo mediante un dork, de la siguiente manera: 

inurl:/wp-content/plugins/prettyPhoto
dork prettyphoto

Y vemos que solo contando sitios wordpress cacheados hay 7300 resultados con lo que vemos la exponente vulnerabilidad a la que están expuestos.


Una vez tenemos la pagina tendremos que buscar la versión, para ello buscaremos en el código fuente la versión o miraremos los archivos Javascript o Css hasta encontrar la versión, yo lo he testeado en versiones 3.1.4 y 3.1.5 y ambas permiten la ejecución de código.
version prettyphoto


Como hemos dicho que es usado en slides y galerías localizaremos para que se esta usando el plugin y con URL /#prettyPhoto[gallery]/1 ejecutaremos la galería.
ejecucion prettyphoto


Una vez vemos que hemos conseguido ejecutar el gallery ahora vamos construir el XSS, en este primer caso usaremos un document.write para escribir en el documento texto.
URL /#prettyPhoto[gallery]/1,<a onclick="document.write(/esto-es-una-prueba/);">/

document.write en pagina

Para nosotros poder ejecutar esto es un éxito y echándole imaginación puede ser muy peligroso consiguiendo hacer Denegación de servicios, redirecciones, robo de cookies, alertas, inyección de codigo html...

Ahora vamos a por una alerta simple para conseguir el segundo XSS.
URL /#prettyPhoto[gallery]/1,<a onclick="alert(/esto-es-una-prueba/);">/
alert en pagina


Ahora vamos a ponernos en el sitio del atacante con lo que podría ser cosas peligrosas, lo primero seria realizar un robo de cookies, haciéndose de la siguiente manera:
URL /#prettyPhoto[gallery]/1,<a onclick="document.write(document.cookie);">/

Hemos conseguido ejecutarlo pero no contiene una cookie, lo que podria ser un pwned directo. Por suerte para el sitio no lo hemos conseguido.


Solución:
Para arreglar esta vulnerabilidad se recomienda actualizar a la ultima versión disponible en la pagina del autor y probar si esta arreglado.


**La vulnerabilidad fue reportada al autor y arreglada al día siguiente, aunque pueda ser molesto para el desarrollador se suele avisar por que son vulnerabilidades que en malas manos pueden hacer mucho daño. El objetivo de este tutorial era concienciar sobre los peligros de esta vulnerabilidad y que hacer frente a ella. 

Saludos !!

No hay comentarios:

Publicar un comentario