elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking (Moderador: toxeek)
| | |-+  Explotando XSS desde el Header Referer IE 6,7,8
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Explotando XSS desde el Header Referer IE 6,7,8  (Leído 3,343 veces)
Preth00nker

Desconectado Desconectado

Mensajes: 43


Mov MyHeart, 4C6F7665h!!!


Ver Perfil
Explotando XSS desde el Header Referer IE 6,7,8
« en: 16 Octubre 2011, 22:20 pm »

En los pasados días estuve analizando un XSS encontrado en el campo Referrer del protocolo HTTP. cosa que no es rara, seguramente muchos han encontrado este tipo de vulnerabilidades en algunos lugares como en los logs administrativos de foros, blogs, SMF, CRM, etc.. sin embargo, no había visto una forma en la cuál estas fueran explotadas.
A primera instancia muchos dicen que no es factible una inyección de este tipo, o que el escenario depende de muchas variables, en ejemplo,si se quisiera modificar la cabezera Referrer mediante alguna petición de tipo AJAX; la página desde donde se realiza la petición debería estar en el mismo dominio, esto debido a restricciones SOP, por tanto, de que serviría inyectar código JS/HTML, si ya se ha inyectado previamente para la petición? por tanto, este tipo de vulnerabilidades se cataloga como de poca importancia, sin embargo, el fin de esta explicación es encontrar una manera en la cuál la explotación sea exitosa sin demasiada ingeniería social.

Una vez descartada (aclaro, no del todo) el uso de una implementación AJAX para este ataque se debería encontrar una forma alternativa para modificar el campo suseptible, de forma que, si ponemos un poco de atención en el comportamiento del Header sabremos que el campo "permite al cliente especificar (en beneficio del servidor) la dirección URI del recurso desde el cuál el Request (N. del T. Petición) procede" [ Léase: http://tools.ietf.org/html/rfc2616 Apartado 14.36 Referer]. De forma que lo que el cliente necesitaría es proceder de una dirección de tipo <script>alert('Hi');<script> cosa que por el standard URI no es factible una dirección como tal, sin embargo, qué sucede si la página anterior fuera algo como http://evil.me/index.php?something=<script>alert('Hi')</script> ? aquí viene la explicación de porqué este ataque funciona en IE 6,7,8  y no en Mozilla. lo que Mozilla hace cada que el campo de referencia (Referer) es añadido a una petición es codificar en formato URL-Encode y entregar la información al server de forma que si del lado del cliente se refleja el XSS en algo como..

Código:
<html>
<head>
<Title>Oops! something went wrong</Title>
<body>
<h1>Sorry, we're in troubles</h1>
<i>please return to back page or click <a href="<? echo $_SERVER['HTTP_REFERER']; ?>">Here</a>.</i>
</body>
</head>
</html>

Como podemos ver, es posible modificar un poco la URL resultando en algo interpretable por el navegador: i.e. http://evil.me/index.php?something="><script>alert('Hi')</script><!--, ahora, en qué ocasiones es agregado el header por el navegador? Por mencionar algunas

1)Cuando el recurso proviene de una liga (Tag <a>)
2)Cuando el recurso proviene de un formulario (Tag <form>)
3)Cuando el recurso proviene de una redirección ( JS: document.location o Tag <meta>)

así que por facilidad ocuparemos la forma 3) debido a que creo que es la forma más corta y que no necesita interacción directa con el usuario obteniendo el mismo resultado.

de modo que haremos dos archivos, el primero para camuflajear la petición y que el URL no paresca tan maléfico, y el segundo para llegar a la víctima, de forma que el engaño seguiría la secuencia:

URL Normal, ejemplo, http://myserver.com/index.php el cual realizará una redirección a la página que contiene el código malicioso, ejemplo
Código:
<script>
document.location.href='http://evil.me/one.php?something="><script>alert("Hi")</script><!--';
</script> 
en el siguiente script (one.php) realizamos una nueva Redirección a la página suseptible al Referer XSS.

Código:
<script>document.location.href="http://victim.com/vulnerableURL";<script>

de forma que el único reto será que el usuario entre a http://myserver.com/index.php :)

Bien eso es todo, espero haber aportado algo a la explotación del ataque, cualquier sugerencia quedo a su disposición. finalmente para ver una alternativa de código pueden visitar http://www.gremwell.com/exploiting_xss_in_referer_header
un saludo!
En línea

mov [MyBrain], IA
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Explotando XSS desde el Header Referer IE 6,7,8
« Respuesta #1 en: 14 Noviembre 2011, 22:45 pm »

Interesante y explicado claramente, gracias por el tiempo que has invertido en compartir tu conocimiento.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
HTTP referer spoofing
Nivel Web
ellescanito 4 4,163 Último mensaje 29 Octubre 2008, 18:03 pm
por toxeek
Referer para protección de páginas o no? « 1 2 »
PHP
jdc 14 8,370 Último mensaje 25 Agosto 2009, 06:18 am
por jdc
Como llamo al titulo de una pagina referer?
PHP
jdc 1 3,002 Último mensaje 25 Agosto 2009, 12:32 pm
por #!drvy
Problemas explotando un Worpress
Nivel Web
Debci 2 3,192 Último mensaje 20 Abril 2013, 21:21 pm
por Debci
Explotando Windows 7 o XP mediante PDF desde metasploit
Hacking
3lyatmaN 1 3,270 Último mensaje 8 Marzo 2016, 21:58 pm
por michelnaranjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines