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 .
. .
, . Deep Linking.
- , , .
Chromium
. ( ). ( ), .
, Extension () . , Extensions ( mailto:) . .
Chrome PDF Viewer, Extension. PDF .
:
location.replace();
input . , , ;
PDF , ;
1-3 , .
Firefox
same-origin policy. . , , JavaScript. about:blank, .
:
window.open;
location.replace;
document . , ;
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: