Uma vulnerabilidade do tipo DOM XSS no botão “Login with Facebook” rendeu a um investigador de segurança $20K num programa bug bount.
Vinoth Kumar descobriu a vulnerabilidade XSS baseada em DOM na tecnologia que oferece a sites de terceiros a opção de autenticar visitantes através da plataforma SDK do Facebook.
O problema de segurança surgiu devido a uma falha de implementação da API postMessage.
Got $20000 for XSS from Facebook bug bounty 🤑🤑 Also first bounty from Facebook 😇😇 #BugBounty #Facebook pic.twitter.com/FspTFDweOP
— Vinoth Kumar (@vinodsparrow) April 30, 2020
O método window.postMessage() permite a comunicação entre origens entre objetos Window, por exemplo, entre uma página da web e um iframe incorporado.
Kumar descreveu a tecnologia como uma “avenida pouco explorada por bug hunters”, daí sua decisão de analisar a implementação do Facebook.
Há dias atrás, também o investigador Enguerran Gillier, descrobriu uma vulnerabilidade desta linha no Gmail.
DOM XSS in Gmail with a little help from Chromehttps://t.co/23yKlFO1WV#BugBounty @ChromeDevTools @GoogleVRP
— Enguerran Gillier (@opnsec) May 3, 2020
Detalhes sobre a vulnerabilidade do Facebook
O investigador Kumar começou por examinar os plugins de terceiros do Facebook para tentar localizar possíveis problemas de iframe. Ele encontrou um ponto de injeção para a exploração quando olhou para o SDK de autenticação do Facebook para JavaScript.
O investigador percebeu que não havia validação de URL quando o JavaScript estava a ser executado – abrindo a possibilidade de executar um ataque baseado em DOM XSS, como Kumar explica numa publicação técnica no seu blog que documenta a descoberta.
“If we send a payload with url:’javascript:alert(document.domain)’ to the https://www.facebook.com/v6.0/plugins/login_button.php iframe and the user clicks the Continue With Facebook button, javascript:alert(document.domain) would be executed on [the] facebook.com domain.”
Através desta vulnerabilidade, agora corrigida pelo Facebook, o investigador encontrou um vetor de ataque em que um agente malicioso era capaz de obter total controlo sobre uma conta de terceiros e as vítimas apenas precisavam de clicar num botão mal intencionado.
“Due to an incorrect post message configuration, someone visiting an attacker-controlled website and clicks login with the Facebook button would trigger XSS on [the] facebook.com domain [on] behalf of [the] logged-in user.”
Esta falha poderia ser aproveitada para account takeover apenas em 1 click.
Timeline
- April 17, 2020 – Initial Report Sent.
- April 17, 2020 – Acknowledgment of Report.
- April 20, 2020 – Fix pushed by Facebook.
- April 29, 2020 – Confirmation of Fix by Facebook.
- May 01, 2020 – $20000 Bounty Awarded by Facebook.
Pedro Tavares is a professional in the field of information security working as an Ethical Hacker/Pentester, Malware Researcher and also a Security Evangelist. He is also a founding member at CSIRT.UBI and Editor-in-Chief of the security computer blog seguranca-informatica.pt.
In recent years he has invested in the field of information security, exploring and analyzing a wide range of topics, such as pentesting (Kali Linux), malware, exploitation, hacking, IoT and security in Active Directory networks. He is also Freelance Writer (Infosec. Resources Institute and Cyber Defense Magazine) and developer of the 0xSI_f33d – a feed that compiles phishing and malware campaigns targeting Portuguese citizens.
Read more here.