por AppSecure

Publico-o com a permissão do Facebook sob a política de divulgação responsável. Eles corrigiram essa vulnerabilidade.

Este post é sobre uma vulnerabilidade simples que eu descobri no Facebook e que eu poderia ter usado para invadir as contas de outros usuários do Facebook facilmente e sem qualquer interação do usuário.

Isso me deu acesso total à conta de outros usuários, definindo uma nova senha. Consegui visualizar mensagens, seus cartões de crédito/débito armazenados na seção de pagamento, fotos pessoais e outras informações privadas.

Facebook reconheceu o problema prontamente, corrigiu-o e me recompensou com uma recompensa de US $15.000 com base na gravidade e impacto dessa vulnerabilidade.

Como o hack funcionou

Quando um usuário esquece sua senha no Facebook, ele tem uma opção para redefinir a senha, digitando seu número de telefone e endereço de e-mail em https://www.facebook.com/login/identify?ctx=recover&lwv=110.

Facebook envia um código de 6 dígitos para esse número de telefone ou endereço de e-mail que o usuário tem que digitar para definir uma nova senha.

Tentei forçar o código de 6 dígitos no www.facebook.com e fui bloqueado após 10-12 tentativas inválidas.

Então procurei o mesmo problema no beta.facebook.com e mbasic.beta.facebook.com. Curiosamente, a limitação de taxas estava faltando no endpoint de senha esquecida.

Tentei assumir minha própria conta (como pela política do Facebook, você não deve prejudicar nenhuma conta de outros usuários) e tive sucesso ao definir uma nova senha para minha conta. Eu poderia então usar essa mesma senha para entrar na minha própria conta hackeada.

Uma prova de conceito do vídeo do hack

Como você pode ver no vídeo, eu fui capaz de definir uma nova senha para o usuário, forçando o código que foi enviado para o seu endereço de e-mail e número de telefone.

Pedido vulnerável

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

Brute forçando o “n” me permitiu definir com sucesso uma nova senha para qualquer usuário do Facebook.

Linha de tempo de divulgação

22 de fevereiro de 2016 : Relatório enviado à equipe do Facebook.

23 de fevereiro de 2016 : Verifiquei a correção do meu fim.

2 de março de 2016 : Recompensa de $15.000 concedida pelo Facebook