jueves, 17 de diciembre de 2009

Vulnerabilidad XSS en el sistema de bibliotecas

¿Que es una vulnerabilidad XSS? Veamos que nos dice la Wikipedia:

"XSS, del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado."

El articulo completo aqui.

Traduciendo nos dice que podemos añadir código HTML en las webs vulnerables. Este código puede ser ordenes javascript para realizar redirecciones, robo de cookies, modificar el documento original, etc. Esto se debe a un descuido del programador del sitio pues no valida las entradas de los formularios aceptando caracteres especiales y con ello la inyección del código.

Este error se presenta en el buscador del sistema de bibliotecas de la UNMSM.

La URL del buscador es:

http://catalogo-01.unmsm.edu.pe/sabini/sm1spa.htm

Testeamos el buscador escribiendo este codigo:

<script>alert('xss');</script>

Ahora le damos clic a "Buscar" y si todo salio bien debería aparecer una ventana de alerta con el mensaje "xss". Esto significa que la web es vulnerable a XSS. Posiblemente tu navegador bloquee la ejecucion del script y te avise como es el caso del IE8. Pero esto no quiere decir que la web no sea vulnerable solo que tu navegador es un poco mas seguro. Bueno hay que decirlo : punto para el IE8.

Una de las ventajas que tiene un atacante al explotar un XSS es la confianza del usuario en la web afectada, es decir, el usuario no sospecharía de la web pues conoce el sitio y cree que es seguro. Entonces el atacante puede formar un link malicioso que explote el XSS y camuflándolo bajo una URL del sitio afectado redirigir al usuario a otra dirección.

Bueno, ahora hagamos algo más que mostrar mensajes en pantalla. Haremos un link para redirigir a este blog explotando el XSS.

Si vemos el código fuente del buscador encontraremos estas lineas de código:

<form action="/cgi-bin/sm1spa" method="get" name="frmBuscar" align="left" onsubmit="frmBuscar.cmdBuscar.disabled=true ;return true;>

<input name="C2" size="50">

Quiere decir que el formulario se envía a "/cgi-bin/sm1spa" mediante el método "get" y el texto buscado va en la variable "C2". Con esos datos ya sabemos que la estructura del link sera:

http://catalogo-01.unmsm.edu.pe/cgi-bin/sm1spa?C2="[SCRIPT]"

Debemos reemplazar [SCRIPT] por el código que haga la redirección. El código para la redirección seria:

<script>document.location.href='http://alguienenlafisi.blogspot.com/'</script>

Con lo que el link completo queda así:


A primera vista parece un link a algún servidor de la UNMSM pero al darle clic nos enviara a éste blog.

Tal vez no parezca nada peligroso pero imagina que te redirijan a una de esas paginas que mueven la ventana por toda la pantalla y no se dejan cerrar. Puede llegar a ser muy fastidioso y claro nadie sospechó del link por que era un sitio de la universidad.

Bueno eso es todo, espero que les haya gustado.

Como reto podría ser explotar el XSS para mostrar el mensaje "cross site scripting detected". Créanme que no va a ser tan fácil como están pensando ;P

Hasta pronto.

Todo lo explicado aquí es solo con fines didácticos. El autor no se hace responsable del uso que se le pueda dar a esta información.

2 comentarios:

  1. esa entrada lo encontre hace mas de 2 años ... muy debil su validacion

    ResponderEliminar
  2. See... este post tiene más de 3 años también xD

    ResponderEliminar