Gmail Checker plus Chrome extension XSS/CSRF (Parte II)

18 junio 2010 Publicado por cLimbo
######################################
Gmail Checker plus Chrome extension XSS/CSRF II
extension: https://chrome.google.com/extensions/detail/gffjhibehnempbkeheiccaincokdjbfe
reportado por: http://lostmon.blogspot.com/2010/06/gmail-checker-plus-chrome-extension.html
Exploit disponible: Sí Notificación al afectado: No
#######################################

En este caso "Google Mail Checker Plus" la versión 1.1.7 (02/10/2010) tiene un bug que permite a atacantes realizar ataques XSS.

Todas las extensiones se ejecutan sobre su origen y no tienen forma de alterar los datos de la extensión o de obtener datos sensibles como; cuenta de correo electrónico o contraseña, etc.

si observamos cómo muchos usuarios han instalado esta extensión =>
https://chrome.google.com/extensions/detail/gffjhibehnempbkeheiccaincokdjbfe
303.711 usuarios lo han instalado ya (WoW)

############
explicación
############

Google Mail Checker Plus permite a los usuarios ver cuando tienen un nuevo correo y ver una vista previa del correo.

Si un atacante crea un nuevo correo con código HTML o JavaScript en el cuerpo y lo envía a la víctima, el código se ejecuta, cuando la víctima haga click en él para ver una vista previa del correo.

Así que para aprovechar que tenemos que crear un correo "especial" como por ej, si ponemos directamente en el cuerpo del correo un iframe; "><iframe src="javascript:alert(location.href);"></iframe> la extensión muestra el código en texto plano y la descripción no se ejecuta.. tenemos que utilizar una característica de gmail (autoconversión de enlaces automática al clickar urls) con ellas podemos crear un cuerpo de correo electrónico con un enlace http como:

http://"><iframe src="javascript:alert(location.href);"></iframe>

o crear un mail con el link:

lalala@"><iframe src="javascript:alert(location.href);"></iframe>.com

En los dos casos el alert se ejecuta cuando trata de abrir una vista previa del correo electrónico con la extensión :) que se ejecuta en el valor de contexto que es: location.href el valor sería: "about:blank"

Gmail es un lugar seguro, pero las extensiones para su gestión pueden ser un vector potencial de ataque.

Por ejemplo, podemos enviar un correo electrónico con un cierre de sesión en gmail creando en el cuerpo:

http://"><iframe src="https://mail.google.com/mail/?logout&hl=es"></iframe>

Como comprobaréis no se cierra la sesion en gmail, se trata de un CSRF.

Asimismo, si el usuario tiene opción de marcar para mostrar notificaciones en el escritorio y de esta manera se puede ejecutar también el iframe en la ventana de notificaciones del escritorio y puede causar una denegación de servicio de extensión, por ejemplo, si la víctima trata de cambiar alguna opción en las opciones de la página de extensión :P

Estas diferencias las tenemos en: http://code.google.com/p/chromium/issues/detail?id=45401

El desarrollador ha comunicado una versión del parche en el repositorio sobre otros problemas.

Véanse las referencias anteriores sobre las vulns: => OSVDB ID :65459 and OSVDB ID: 65460
y su posterior parche =>
http://github.com/AndersSahlin/MailCheckerPlus/blob/54ab118e505feae819e676c8e525e8fe5409c981/src/mailaccount.class.js
y esta => http://github.com/AndersSahlin/MailCheckerPlus/commit/54ab118e505feae819e676c8e525e8fe5409c981#diff-0

Lo lanzo como 0-day y no notifico a los proveedores ya en las vulns anteriores en el parche no hicieron ninguna a ésta y robaron créditos por el reporte. Esta vez no se notificarán a los desarrolladores :)

######################€nd#################################
.

Thnx for your time !!!

atentamente:
Lostmon (lostmon@gmail.com)
---

thz Lost ;-)