Aplicaciones vulnerables a ataques XSS en Facebook

Por estos días aprovechando el tiempo libre, he estado investigando sobre los ataques (Cross-site scripting) XSS en algunas aplicaciones sobre Facebook. En el blog Desvaríos informáticos en un post publicado hace más de un año hacen una demostración de como incrustar código javascript en una aplicación vulnerable, en el ejemplo al hacer click en un link se abre un alert donde nos muestra las cookies de la página, completamente inofensivo, pero que nos hace pensar en muchas cosas que se pueden hacer con esa información. Aquí esta dicho post http://rooibo.wordpress.com/2009/04/28/agujero-de-seguridad-en-facebook/.

Con base en el ejemplo de desvaríos informáticos he preparado una URL donde al hacer click en un link se cerrará la sesión del Facebook de la victima.

Hace menos de cuatro días la forma de cerrar nuestra sesión era haciendo click en un botón Salir con una Url mas o menos así:
http://www.facebook.com/logout.php?h=21ed5705a23da92010c2a3scebs3d&t=27955277&ref=mb

Es decir, enviándole los parámetros ht y ref a la página logout.php de esta forma se "garantizaría" que el usuario al cual pertenece la cookie h fue quien presionó el link de Salida, además evitando por ejemplo: si se redirecciona la victima al script http://www.facebook.com/logout.php no cerraría la sesión  del usuario ya que no tiene parametros validos.

Entonces para lograr nuestro propósito que es cerrar la sesión de la victima tendríamos que atravesar el Dom de la página coger ese link y redireccionar a ese link nuestra victima; hice varias bromas así  pero luego me di cuenta que habían cambiado la forma de cerrar sesión :S ya no se utilizaba un link sino un formulario que al enviarse le pasa los parámetros de validación al script logout.php claro ya no con el método GET sino con POST. El form es algo como esto:
<form id="logout_form" method="post" action="/logout.php"><input type="hidden" autocomplete="off" name="post_form_id" value="be875b2cfe5803f1bfc2bafed8c719ee"></input><input type="hidden" name="fb_dtsg" value="CQKDv" autocomplete="off"></input><input type="hidden" autocomplete="off" name="ref" value="mb"></input><input type="hidden" autocomplete="off" name="h" value="0779d7c779f7c29bd254ea9a61d2cd52?></input><label><input type="submit" value="Salir"></input></label></form>

Las variables que se le pasan al script son las que están en negrita. Entonces para cerrar sesión solo hay que darle enviar al formulario y... ¿Cómo hago eso?:
document.getElementById('logout_form').submit()

Como vemos, ubicamos el elemento form através de su Id "logout_form" y simplemente le aplicamos el método submit() que equivale a dar click en el botón Salir.

Esta es la url completa donde creamos un link "Responder Quíz" y lo ubicamos en cierta parte de la aplicación cargada, cuando la victima de click en dicho link se ejecuta la línea de código anterior haciendo un logout:
http://apps.facebook.com/qeres-buen-pol-ceijh/?target=list&send_id=1517598431&x=24897%22%20href=%22%20javascript:document.getElementById('logout_form').submit();%22%3E%3Ch1%20style=%22margin:%2050px%2050px%2050px%2050px;color:blue;position:absolute;left:200px;%22%3E%20Responder%20Qu%C3%ADz%20%3C/h1%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%22

Para que no sea tan sospechoso semejante link, podemos aprovechar los acortadores de Url's; esto ya es menos sospechoso:
http://tinyurl.com/26hnrzl

Si usamos un poco nuestra imaginación nos daremos cuenta que hay muchísimas formas de aprovechar esta vulnerabilidad.

Información extraída de:
http://www.rinconinformatico.net/aplicaciones-vulnerables-a-ataques-xss-en-facebook

Entradas populares de este blog

Trinity Rescue Kit: Tutorial para eliminar la contraseña de administrador en Windows

Cómo extraer el handshake WPA/WPA2 de archivos de captura grandes

HTTP Fingerprinting