Acompanhamento entre navegadores com base na iteração em manipuladores de protocolo externos

Este artigo descreve como criar um identificador entre navegadores explorando vulnerabilidades em quatro navegadores populares: Navegador Tor, Safari, Chrome e Firefox. Links para demonstração , código-fonte .





Dois meses atrás, enquanto pesquisava o navegador Safari, acidentalmente me deparei com uma vulnerabilidade que me permite verificar se há um aplicativo específico no computador de um usuário diretamente do navegador usando JavaScript.





24 24- . . , , .





, IDE Python, PostgreSQL . , , - , , Tor Browser. ?





, . , :





  • Linux. xdg-open, . Firefox - ;





  • , 8% ;





  • 15% . , ;





  • , ;





  • . - Tor Browser PR .





, Windows Mac, . .





. .





, . Deep Linking.





Zoom de abertura
Zoom

- , , .





. . . CORS , iframe .





Chromium

. ( ). ( ), .





, Extension () . , Extensions ( mailto:) . .





Chrome PDF Viewer, Extension. PDF .





:





  1. location.replace();





  2. input . , , ;





  3. PDF , ;





  4. 1-3 , .





Firefox

same-origin policy. . , , JavaScript. about:blank, .





:





  1. window.open;





  2. location.replace;





  3. document . , ;





  4. 2-3 .





Safari

, Firefox. , ( location.reload) .





Tor Browser

, -, . , .





Nenhuma janela adicional é necessária aqui. Usaremos apenas elementos iframe e verificaremos a política de mesma origem .





Você pode verificar passivamente: verificamos a cada 10 segundos em segundo plano, sem exigir ações do usuário.





Você pode fazer isso ativamente: mostre um captcha de 24 caracteres e verifique-o após cada pressionamento de tecla.





conclusões

Esta vulnerabilidade existe há vários anos e muitos desenvolvedores de navegador estão cientes disso, a julgar pelos relatórios de bug. No entanto, não consegui encontrar sites que o usem.





Links:





  • Demo





  • Fonte





  • Artigo em ingles





  • Relatório de bug para Chromium





  • Relatório de bug para Firefox





  • Relatório de bug para Safari





  • Relatório de bug para o navegador Tor








All Articles