por AppSecure

Publico esto con el permiso de Facebook bajo la política de divulgación responsable. Han corregido esta vulnerabilidad.

Este post trata sobre una sencilla vulnerabilidad que descubrí en Facebook y que pude utilizar para hackear las cuentas de Facebook de otros usuarios fácilmente y sin ninguna interacción con el usuario.

Esto me dio acceso completo a la cuenta de otros usuarios estableciendo una nueva contraseña. Pude ver los mensajes, sus tarjetas de crédito/débito almacenadas en su sección de pago, fotos personales y otra información privada.

Facebook reconoció el problema rápidamente, lo solucionó y me recompensó con una recompensa de 15.000 dólares basada en la gravedad y el impacto de esta vulnerabilidad.

Cómo funcionó el hack

Cuando un usuario olvida su contraseña en Facebook, tiene la opción de restablecerla introduciendo su número de teléfono y su dirección de correo electrónico en https://www.facebook.com/login/identify?ctx=recover&lwv=110.

Facebook enviará entonces un código de 6 dígitos a este número de teléfono o dirección de correo electrónico que el usuario tiene que introducir para establecer una nueva contraseña.

Intenté forzar el código de 6 dígitos en www.facebook.com y se bloqueó después de 10-12 intentos inválidos.

Luego busqué el mismo problema en beta.facebook.com y mbasic.beta.facebook.com. Curiosamente, la limitación de velocidad no aparecía en el punto final de Olvidé mi contraseña.

Intenté hacerme con mi propia cuenta (según la política de Facebook, no se debe hacer ningún daño a las cuentas de otros usuarios) y conseguí establecer una nueva contraseña para mi cuenta. A continuación, pude utilizar esta misma contraseña para iniciar sesión en mi propia cuenta hackeada.

Un vídeo de prueba de concepto del hackeo

Como se puede ver en el vídeo, fui capaz de establecer una nueva contraseña para el usuario mediante la fuerza bruta del código que se envió a su dirección de correo electrónico y número de teléfono.

Solicitud vulnerable

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

Forzar la «n» con éxito me permitió establecer una nueva contraseña para cualquier usuario de Facebook.

Línea de tiempo de divulgación

22 de febrero de 2016 : Informe enviado al equipo de Facebook.

23 de febrero de 2016 : Verificado el arreglo de mi parte.

2 de marzo de 2016 : Recompensa de 15.000 dólares otorgada por Facebook