ATAQUES cross-site scripting
Los ataques de secuencias de comandos entres sitios generalmente se clasifican como uno de los siguientes tipos:
XSS REFLECTED
Este tipo de ataque involucra un sitio web vulnerable que acepta datos un Script malicioso enviado por el propio navegador web del objetivo para atacarlo.Debido a que el propio cliente envía el script malicioso y no almacena en el servidor vulnerable este tipo de ataque también se denomina no persistente.
Un ejemplo de este tipo de ataque podría involucrar a un atacante que crea una URL que pasa un pequeño srcipt malicioso como parámetro de consulta a un sitio web que tiene una pagina de búsqueda vulnerable a XSS:
http://vulnerable-website.com/search?search_term=<script>(bad things happen here)</script
El atacante necesita que los objetivos visiten esta URL desde sus navegadores web.Esto podría lograrse enviando un correo electrónico que contenga la URL o publicando la URL en un sitio web publico no vulnerable para que los objetivos hagan clic.
Cuando la victima hace clic en el enlace, el sitio vulnerable acepta el parámetro de consulta «Search_term» esperando que el valor sea algo que el objetivo este interesado en buscar el el sitio vulnerable,cuando en realidad el valor es el script malicioso.La pagina de búsqueda como la mayoría de las paginas de búsqueda del sitio web lo harán cuando un usuario este buscando algo,pero debido a que el sitio vulnerable no desinfecta el valor de search_term, se inyecta el srcipt malicioso en la pagina web que el navegador del objetivo esta cargando y luego es ejecutado por el navegador del objetivo.
XSS PERSISTENTE
Como su propio nombre indica este tipo de ataque persiste en el propio servidor vulnerable.A diferencia de un ataque reflejado donde el script malicioso es enviado por el objetivo,los usuarios de un sitio web o aplicación web vulnerables pueden ser atacados durante sus interacciones habituales con el sitio o la aplicación vulnerable.
Un ejemplo simple de un ataque XSS persistente podría involucrar a un atacante que publica un mensaje un un foro alojado en un sitio web vulnerable.En lugar de una publicación de foro inofensiva, el contenido de esta publicación contiene el script malicioso del atacante.Cuando un usuario visita esta publicación del foro su navegador web carga y ejecuta el script malicioso.
Como se puede ver un diferenciador clave entre los ataques XSS reflejados y persistentes es que estos ataques consideran a todos los usuarios de un sitio como objetivos para el ataque..
XSS BASADO EN DOM
Este tipo de ataque se da donde existe la vulnerabilidad en los scripts del lado del cliente que el sitio web o aplicación siempre proporciona a los visitantes.Este ataque difiere de los ataques XSS persistentes en que el sitio web no entrega directamente el script malicioso al navegador del objetivo.En un ataque XSS basado en DOM el sitio web tiene scripts vulnerables en el lado del cliente que entregan el script malicioso al navegador de la victima.
Los ataques XSS basados en DOM resaltan el hecho de que las vulnerabilidades XSS no se limitan al software del lado del servidor.
COMO PREVENIR ESTOS ATAQUES
Desinfectar la entrada del usuario
-Validar para capturar entradas potencialmente maliciosas proporcionadas por el usuario.
-Codificar la salida para evitar que los datos proporcionados por el usuario potencialmente maliciosos activen un comportamiento automático de carga y ejecución por parte de un navegador.
Limitar el uso de datos proporcionados por el usuario
-Solo usarlos donde sea necesario
Usar regularmente una herramienta de escaneo de vulnerabilidades web para identificar vulnerabilidades XSS en los software.