Continuamente se publican en Internet listas de contraseñas de sitios comprometidos, amén de otro tipo de información delicada como números de tarjetas de crédito o cuentas bancarias. Seguro que en alguna ocasión habéis realizado una búsqueda mediante el navegador para comprobar que vuestra contraseña (o lo que sea) no se encuentra en esa enorme lista expuesta: pulsáis ctrl+f e introducís el texto en busca de coincidencias en la página y pensáis "total, como no introduzco mi contraseña en ningún formulario no hay peligro de que me la levanten"...
¡Error! Mediante Javascript es posible "secuestrar" el comando de búsqueda de cualquier navegador, de tal forma que podemos ejecutar un script malicioso al pulsar la combinación de teclas ctrl+f o ⌘+f. Esto se traduce en que podemos emular una barra de búsqueda falsa que sustituya a la barra real del navegador y a la hora de buscar el texto en la página todo lo que se escriba se mande a un servidor remoto.
Todo lo que tenemos que hacer es utilizar la función preventDefault, que cancela una acción por defecto y nos permite ejecutar otros eventos. El código genérico es muy sencillo:
$(window).keydown(function(evt){ if((evt.which == "70" && (evt.metaKey || evt.ctrlKey))){ console.log("STRG+F"); evt.preventDefault(); /* display fake search */ $("#searchbox").slideDown(110); $('#search').focus();
Y el resultado es más que creíble como podéis ver en las siguientes pruebas de concepto que emulan la barra de búsqueda de Chrome (1 y 2) o Firefox (1).
Fuentes:
Browser Event Hijacking
{ what's real and what's not }
How script kiddies can hijack your browser to steal your password
No hay comentarios:
Publicar un comentario