Este post é sobre um bug que encontrei no Meta (aka Facebook) que permite fazer qualquer Endpoint como solicitação POST no fluxo SMS Captcha que leva ao ataque CSRF.
Depois de relatar o bug de deanonymization do ponto de contato, comecei a encontrar alguma maneira de ignorá-lo no fluxo de recuperação de conta. mas ao enviar várias solicitações de código OTP, fui atingido com o fluxo SMS captcha.
Ponto de extremidade vulnerável:
https://m.facebook.com/sms/captcha/?next =/path
ao cavar mais fundo na página captcha, descobri que o parâmetro next= é vulnerável ao ataque CSRF. porque o Endpoint não tem nenhuma proteção CSRF e o URL de ação give está enviando como post request com o token CSRF fb_dtsg
Assim, o invasor pode anexar qualquer endpoint graphql sensível.
Exemplo:
- Criar | Atualizar |Excluindo (Feeds, Histórias)
- Adicionando ou removendo (endereço de e-mail, número de celular)
- modificando quaisquer alterações sensíveis em /setting , etc…
Se a vítima clicar no botão Continuar, a solicitação POST será enviada com o Token CSRF. Assim, o URL da ação será executado com sucesso.
Fixar:
Meta corrigiu essa vulnerabilidade adicionando next_mac=**** Proteção CSRF e permite apenas o envio de código OTP Endpoint no formulário SMS Captcha URL de ação.
Vídeo POC:
Linha do tempo:
16-jan-2022: Relatório enviado
17-jan-2022: Investigação adicional por Meta
16-Fev-2022: Corrigido confirmado por Meta e por mim
11-mar-2022: recompensa de $ 18750 concedida pelo Facebook (com Hacker plus e bônus de tempo)
Obrigado Meta Team pela triagem rápida e correção dessa vulnerabilidade
Fonte: Lokesh Kumar
Descubra mais sobre DCiber
Assine para receber os posts mais recentes por e-mail.