¿Cómo se logró el exploit de Gmail reportado por Techcrunch el 20 de noviembre de 2010?

No creo que llamar a esto un “exploit de Gmail” sea correcto. La vulnerabilidad estaba realmente dentro de la API de Google Apps Script , no dentro de Gmail.

La API (documentada aquí: http://code.google.com/googleapp…) permite a los usuarios de Google Spreadsheets escribir scripts que automatizan ciertas tareas, como enviar correos electrónicos. (El código de envío de muestra de correo electrónico está aquí: http://code.google.com/googleapp…)

Según los documentos de la API:

Debe otorgar explícitamente derechos de acceso a cualquier script escrito por otra persona o compartido con usted, por ejemplo, cuando hace una copia de una Hoja de cálculo que contiene un script.

Creo que esto es lo que Google jodió. El script del atacante pudo ejecutarse sin el permiso explícito del usuario que vio la hoja de cálculo.

El atacante obligó a los visitantes de su blog a ver la hoja de cálculo con un simple JavaScript. Si el usuario inició sesión en su cuenta de Google en ese momento, sus cookies de sesión autenticadas se enviaron junto con la solicitud.

Mire la línea 1209 en la esencia (https://gist.github.com/708320):

   var x = unescape ("% 68% 74% 74% 70% 3A% 2F% 2F% 67% 6F% 6F% 2" + "E% 6" + "7% 6C% 2F% 79% 63% 37% 70% 70 ");
 document.write (" ");  

Si desenfocamos el código, obtenemos:

   var x = "http: // goo .gl / yc7pp";
 document.write (" ");  

La URL corta de Google apunta a la hoja de cálculo ofensiva (https: //spreadsheets0.google.com…). Luego, se realiza una solicitud GET a la hoja de cálculo (junto con las cookies de inicio de sesión del usuario) al configurar la URL de la hoja de cálculo como el atributo “src” de una imagen. Esto hizo que la secuencia de comandos de envío de correo electrónico se ejecutara con los permisos del usuario que inició sesión, aunque no se proporcionó ningún permiso.

Parece que Google desde entonces ha quitado la hoja de cálculo y ha arreglado el error.

Rápidamente solucionamos el problema en la API de Google Apps Script que podría haber permitido que los correos electrónicos se enviaran a los usuarios de Gmail sin su permiso si visitaban un sitio web especialmente diseñado mientras ingresaban a su cuenta. Inmediatamente eliminamos el sitio que demostró este problema y deshabilitamos la funcionalidad poco después. Alentamos la divulgación responsable de posibles problemas de seguridad de la aplicación a [email protected].