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, Malware Analyst, Cybersecurity Analyst 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, hacking, cybersecurity, IoT and security in computer networks. He is also Freelance Writer.
Read more here.