Robando claves por XSS del Administrador de Contraseñas del Firefox
Gracias a un mensaje de Tom Brennan, me entero de un problema en el Administrador de Contraseñas del Mozilla Firefox, que permite a un atacante mediante XSS (Cross-site scripting) obtener la clave de un usuario almacenada en el navegador.
El problema se encuentra en que el administrador de contraseñas del Mozilla Firefox , no valida adecuadamente el formulario desde el cual se guarda la clave en el administrador de contraseñas, por lo tanto si a la pagina donde se encuentra el formulario de logueo se le puede realizar un XSS es posible agregar un formulario con un campo oculto del tipo "password" y al acceder a ella, firefox no solo llenara el formulario real de acceso automáticamente, sino también el formulario oculto que acabamos de inyectar.
Si le echamos un vistoso al formulario utilizando el plugin Web Developer para el Mozilla Firefox, encontramos que efectivamente el Administrador de Contraseñas, nos llenó el formulario oculto que colocamos en la pagina mediante XSS con nuestra clave de acceso:
El código utilizado para robar la información del Administrador de contraseñas en el Mozilla Firefox:
<script> document.write('<form><input id=p type=password style=visibility:hidden></form>'); setTimeout('alert("Password: " + document.getElementById("p").value)', 100); </script>
Podemos modificar el formulario para que nos envié la contraseña capturada a un archivo en el que puede ser almacenada o enviada por correo electrónico, pero en esta prueba de concepto no lo realizaremos.
En este caso contar con "clave maestra" en el administrador de contraseñas del Mozilla Firefox no supone una "barrera" para que obtengan nuestras claves, ya que una vez ingresada la clave maestra, el Firefox llenara de todas formas el formulario con nuestra clave.
Aunque posiblemente una técnica similar pueda funcionar en otros navegadores, he realizado pruebas en Google Chrome, Safari y Opera siendo el Mozilla Firefox el único afectado.
Actualización:
Un fallo similar fue reportado en el 2006 y supuestamente fue resuelto "VERIFIED FIXED", pero acabo de probar con la prueba de concepto que publicaron en esa ocasión y sigue siendo vulnerable.
Recomendaciones:
- Escribe "about:config" en la barra del Firefox para desactivar (poner en "false") la función signon.autofillForms
- Utilizar el plugin NoScript (si no hay inyección de código, no hay problema)
- No utilizar el Administrador de Contraseñas de Mozilla Firefox (ya hemos demostrado que no es recomendable, ni en firefox, ni en ningún navegador), en vez de el utilizar servicios gratuitos como LastPass (al que por cierto le debo un articulo entero)
Con esto deshabilitas la función de auto llenado del administrador de contraseñas y evitarnos ser victimas de este fallo.
Mas Información:
XSS demo for stealing passwords from the Firefox password manager