Una nueva vulnerabilidad en Internet Explorer 5, descubierta por
Georgi Guninski y confirmada por la propia Microsoft, permite
leer los ficheros locales de los usuarios a través de una página
web diseñada mediante la combinación de IFRAME y el método
ExecCommand().
Las restricciones de seguridad que impone Microsoft en su
navegador impiden, en principio, que el método Document.ExecCommand
pueda ser usado desde otro dominio. De esta forma, y en teoría,
sería imposible para una página web invocar a este método para leer
y enviar datos del sistema local que la visita.
Sin embargo, Georgi Guninski ha demostrado que es posible
utilizar este método en combinación con IFRAME para burlar las
restricciones impuestas por Microsoft, y leer así los ficheros de
los usuarios de forma remota a través de una página web construida
para la ocasión.
A continuación se puede comprobar, en el código de la demostración,
como se crea un IFRAME donde se injecta el código javascript, a
través de la etiqueta [STYLE=»left:expression(eval(JSCode))]».
Donde eval(JSCode) equivale a [a=window.open(‘file://c:/test.txt’);
alert(a.document.body.insertText)], que será ejecutado en el
contexto del sistema local del usuario [file://].
alert(«Create text file c:\\test.txt and it will be read»);
function f()
{
I1.focus();
document.execCommand(«selectAll»);
document.execCommand(«InsertParagraph»,false,»>\»STYLE=’left:expr
ession(eval(String.fromCharCode(97,61,119,105,110,100,111,119,46,
111,112,101,110,40,39,102,105,108,101,58,47,47,99,58,47,116,101,1
15,116,46,116,120,116,39,41,59,97,108,101,114,116,40,97,46,100,11
1,99,117,109,101,110,116,46,98,111,100,121,46,105,110,110,101,114
,84,101,120,116,41)));'»);
}
setTimeout(‘f()’,2000);
En la actualidad, Microsoft trabaja en el desarrollo del
pertinente parche, mientras tanto, se aconseja deshabilitar la
opción de «Secuencias de comando ActiveX», accesible a través del
menú Herramientas -> Opciones de Internet -> Seguridad ->
Personalizar Nivel.
Más información:
Boletín de seguridad Microsoft
FAQ de la vulnerabilidad
Demostración Georgi Guninski
Deja una respuesta