martes, 5 de septiembre de 2017

Cross Site Scripting – (XSS)

Cross Site Scripting – (XSS)




Un ataque por inyección de código, tiene como objetivo introducir código malicioso en una aplicación web el cual puede o no alterar el correcto funcionamiento de dicha aplicación. Consiste en poder inyectar código Javascript, VBScript y HTML en un aplicación web y que esta lo ejecute como su fuera parte de la misma aplicación web.

En algunos sectores de la seguridad informática, aseguran que la inyección de código o inyecciones de scripts no pueden llegar a comprometer toda la seguridad del sitio web, afirmando que solo son errores ya sean de configuración o programación, el cual se puede evitar con ciertos filtros.

Cross Site Scripting </XSS>

"Los ataques Cross-Site Scripting (XSS) son un tipo de inyección en la que se inyectan secuencias de comandos maliciosas en sitios web benignos y de confianza. Los ataques XSS ocurren cuando un atacante utiliza una aplicación web para enviar código malicioso, generalmente en forma de una secuencia de comandos del navegador, a un usuario final diferente. Las fallas que permiten que estos ataques tengan éxito son bastante generalizadas y ocurren en cualquier lugar donde una aplicación web usa la entrada de un usuario dentro de la salida que genera sin validarla o codificarla." by. OWASP

El XSS o Cross Site Scripting es una vulnerabilidad de aplicaciones web, la cual consiste en poder inyectar código ajeno a la aplicación web.

Existen tres tipos de XSS
  • XSS Almacenado (Tipo 1)
  • XSS Reflejado (Tipo 2)
  • DOM basado en XSS (Tipo 0)


El XSS Reflejado este se da cuando una aplicación web, devuelve de forma inmediata la entrada del usurio. Este se puede encontrar en: mensajes de error o resultados de búsqueda, es en donde mas comúnmente son detectados. Generalmente estos se pueden dar en cualquier respuesta la cual incluya la entrada el usuario. Estos no se almacenan en la pagina web.

El XSS reflejado solo se mostrara en el navegador en el cual se inyecto el código malicioso y no daña la integridad de la aplicación web o de su seguridad.

El XSS Almacenado a diferencia del XSS reflejado, este almacena la entrada del usuario en el servidor. Se puede encontrar en: en un foro de mensajes, registro de visitantes, campo de cometarios, formularios, etc. Al ser almacenada la inyección será visible no solo para el atacante, sino para cualquier usuario que ingrese a la aplicación web.

El XSS basado en DOM es XSS el cual aparece en el Document Object Model o DOM. El DOM es la estructura de objetos que genera el navegador cuando se carga un documento y se puede alterar mediante Javascript para cambiar dinámicamente los contenidos y aspecto de la página.

A grandes rasgos el DOM es una estructura de objetos que genera el navegador el cual, convierte las etiquetas de HTML a objetos, por medio de JavaScript se puede alterar o cambiar dinámicamente los contenidos de la página, como el mismo aspecto.

DOM nos permite cambiar realizar lo siguiente:

  • Cambiar todos los elementos y atributos HTML
  • Modificar o cambiar los estilos CSS
  • Remover, añadir y crear elementos y atributos HTML de la pagina


Al aprovechar el XSS basado en DOM nosotros podemos hacer phishing, Deface, robo de credenciales de acceso, redirigir tráfico, etc.

El XSS basado en DOM se puede inyectar por medio de formularios, URL e inyección por cookies.

¿Cuando es vulnerable una aplicacion web?


 Una pagina es vulnerable al XSS cuando muestra de forma inmediata la entrada realizad por el usuario en parte de un resultado.

Por ejemplo cuando haces una búsqueda de algo, la pagina nos suele devolver el un reslutado similar a "Resultados de busqueda <TEXTO>


Con esto podemos comenzar nuestras pruebas de explotación (lo veremos en otro post) 



0 comentarios:

Publicar un comentario