Mochis NoticiasTecnología¿Qué es XSS? ¿Cómo puedes detenerlo?
Mochis NoticiasTecnología¿Qué es XSS? ¿Cómo puedes detenerlo?
Tecnología

¿Qué es XSS? ¿Cómo puedes detenerlo?

Introducción

¿Qué es XSS? ¿Cómo puedes detenerlo? A medida que aumentan la complejidad y el uso de las aplicaciones web, también aumentan las vulnerabilidades de las aplicaciones web. Las vulnerabilidades de secuencias de comandos entre sitios (XSS) se encuentran entre las formas más frecuentes de vulnerabilidades de aplicaciones en línea. Las vulnerabilidades XSS explotan una falla en la desinfección de la entrada del usuario para «escribir» código JavaScript en la página y ejecutarlo en el lado del cliente, permitiendo así una variedad de ataques.

Si una aplicación web acepta entradas de usuario sin filtrar, es susceptible a XSS. En Javascript, VBScript, Flash y CSS, XSS es posible.

La gravedad de esta vulnerabilidad está determinada por el tipo de XSS, que a menudo se divide en dos categorías: persistente/almacenado y reflejado. Dependiendo de la situación, se pueden implementar los siguientes ataques:

  • Robo de cookies: el acto de robar la cookie de un usuario de una sesión autenticada, lo que permite a un atacante hacerse pasar por el usuario sin proporcionar autenticación.
  • Registro de teclas: un atacante puede registrar un detector de eventos de teclado y enviar todas las pulsaciones de teclas a su propio servidor.
  • Instantánea de la cámara web: es posible capturar imágenes desde la cámara web de una computadora comprometida utilizando capacidades HTML5.
  • Phishing: un atacante puede insertar formularios de inicio de sesión falsos en la página o dirigirlo a un clon de un sitio web legítimo en un intento de obtener su información personal.
  • Escaneo de puertos: lo leíste correctamente. Puede utilizar XSS almacenado para buscar una red interna e identificar otros hosts.
  • Otros exploits basados ​​en navegador: XSS ofrece una cantidad infinita de opciones.

¿Quién diría que todo esto era posible simplemente visitando un sitio web? Su navegador y su software antivirus cuentan con medidas de seguridad para evitar que esto suceda.

Los scripts entre sitios almacenados son el tipo más peligroso de XSS. Esto es cuando una cadena maliciosa se origina en la base de datos de un sitio web. Esto sucede a menudo cuando un sitio web permite entradas del usuario que no están desinfectadas (eliminar las «partes defectuosas» de la entrada del usuario) cuando se ingresan en la base de datos.

Un atacante crea una carga útil en un campo mientras se registra en un sitio web, que luego se guarda en la base de datos del sitio web. Si el sitio web no ha desinfectado correctamente ese campo, cuando ese campo se muestre en la página, la carga se ejecutará para cada visitante.

La carga puede ser tan simple como

Sin embargo, esta carga útil no sólo se ejecutará en su navegador sino también en cualquier otro navegador que muestre los datos maliciosos ingresados ​​en la base de datos.

La carga útil maliciosa en un ataque de secuencias de comandos entre sitios reflejado se incluye en la solicitud de la víctima al sitio web. Esta carga útil se incluye en la respuesta del sitio web al usuario. En resumen, un atacante debe convencer a una víctima de que haga clic en una URL para que se ejecute su carga maliciosa.

Esto puede parecer seguro porque requiere que la víctima envíe una solicitud con la carga útil del atacante y el usuario no podría atacarse a sí mismo. Sin embargo, con la ingeniería social, un atacante puede convencer a un usuario de que haga clic en un enlace malicioso incluido en un correo electrónico.

XSS reflejado es el tipo más común de ataque XSS.

El atacante envía a la víctima una URL que contiene una carga útil maliciosa. El atacante intenta engañar a la víctima para que haga clic en la URL. La solicitud puede ser

http://im4rent.com/search?keyword=

El sitio web envía al usuario la respuesta con esta carga maliciosa de la solicitud. En respuesta, el navegador de la víctima ejecutará la carga útil. La información recopilada luego se devuelve al atacante (puede que no necesariamente la envíe la víctima, sino a otro sitio web donde el atacante recopila estos datos; esto protege al atacante de recibir directamente los datos de la víctima).

¿Qué es el DOM?

El modelo de objetos de documento (DOM) es una interfaz para programar documentos HTML y XML. Representa la página para que los programas puedan modificar la estructura, estilo y contenido del documento. Una página web es un documento que se puede mostrar en la ventana del navegador o como fuente HTML.

Con el modo objeto, Javascript recibe todas las capacidades necesarias para generar HTML dinámico.

En realidad, el navegador de la víctima no analiza una carga útil maliciosa durante un ataque XSS basado en DOM hasta que se ejecuta el JavaScript legítimo del sitio web. Entonces, ¿qué implica esto?

Con XSS reflexivo, la carga útil de un atacante se inyecta directamente en un sitio web, independientemente de si hay otro Javascript cargado en el sitio o no.

Suplantación de identidad

Los ataques de phishing son una forma extremadamente popular de ataque XSS. Normalmente, los ataques de phishing utilizan información aparentemente legítima para engañar a las víctimas para que revelen información confidencial. Los intentos comunes de phishing XSS implican inyectar formularios de inicio de sesión falsos que envían detalles de inicio de sesión al servidor del atacante, que luego pueden explotarse para obtener acceso a la cuenta de la víctima y a información confidencial.

Secuestro de sesión

Las aplicaciones en línea modernas utilizan cookies para mantener una sesión de usuario durante múltiples sesiones de navegación. Esto permite al usuario iniciar sesión solo una vez y mantener su sesión incluso si vuelve a visitar la misma página más tarde. Si una persona malintencionada obtiene los datos de las cookies del navegador de la víctima, es posible que pueda iniciar sesión como usuario de la víctima sin sus credenciales.

Con la capacidad de ejecutar código JavaScript en el navegador de la víctima, es posible que podamos robar sus cookies y transferirlas a nuestro servidor para secuestrar su sesión iniciada mediante un ataque de secuestro de sesión (también conocido como robo de cookies).

Métodos de protección

A continuación se presentan tres métodos para evitar que se produzcan secuencias de comandos entre sitios en su aplicación.

  1. Escape: escapa de cualquier entrada del usuario. Esto significa que todos los datos que recibe su aplicación están protegidos antes de mostrarlos a los usuarios finales. Al evitar la entrada del usuario, se evita la interpretación peligrosa de ciertos caracteres en los datos recibidos por la página web. Por ejemplo, puedes evitar que los personajes < u > son dados.
  2. Validación de entrada: este es el proceso de verificar que su aplicación muestre los datos apropiados y evite que datos fraudulentos dañen su sitio web, su base de datos y sus usuarios. La validación de entrada primero prohíbe el envío de caracteres específicos.
  3. Desinfección: Finalmente, la desinfección de datos es una defensa poderosa, pero no debe usarse sola para combatir ataques XSS. En los sitios web que permiten el marcado HTML, desinfectar la entrada del usuario es especialmente beneficioso, ya que convierte la entrada no válida del usuario a un formato aceptable. Por ejemplo, puede desinfectar el carácter < en la entidad HTML <

Fuente y Más información @

https://en.wikipedia.org/wiki/Cross-site_scripting

https://portswigger.net/web-security/cross-site-scripting

Haga clic aquí para volver al blog

Haga clic aquí para volver a la página de inicio

Source link

Hi, I’m Corina Guzman

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *