Antecedentes sobre los ataques XSS
1.1 ¿Qué es un ataque XSS?
XSS es una vulnerabilidad de seguridad informática que se encuentra a menudo en aplicaciones web y que permite a usuarios web malintencionados insertar código en páginas proporcionadas a otros usuarios. Estos códigos incluyen código HTML, scripts del lado del cliente, etc. Los atacantes aprovechan las vulnerabilidades XSS para eludir los controles de acceso, como la política del mismo origen. Este tipo de vulnerabilidad se ha vuelto ampliamente conocida porque los piratas informáticos la han aprovechado para escribir ataques de phishing más dañinos. Con respecto a los ataques de secuencias de comandos entre sitios, la comunidad de piratas informáticos sabe que los ataques de secuencias de comandos entre sitios son un nuevo tipo de "ataque de desbordamiento de búfer" y JavaScript es un nuevo tipo de "ShellCode".
Fuente: OWASP Top 10 de datos MITRE de 2007
Nota: OWASP es la organización de investigación de seguridad web y de bases de datos más famosa del mundo
Cuenta de ataques de secuencias de comandos entre sitios En 2007, OWASP representó el 22% de todas las amenazas a la seguridad, ocupando el primer lugar entre todas las amenazas web.
El daño de los ataques XSS incluye
1. Robar varios tipos de cuentas de usuario, como cuentas de inicio de sesión de máquinas, cuentas bancarias en línea de usuarios y varios tipos de cuentas de administrador.
2. Controlar los datos empresariales, incluida la lectura, manipulación, adición y eliminación de datos empresariales confidenciales
3 Robo de información empresarial importante con valor comercial
4.
5. Enviar correos electrónicos a la fuerza
6. Malware del sitio web
7. Controlar la máquina de la víctima para lanzar ataques en otros sitios web
1.2 Clasificación de las vulnerabilidades XSS
Las vulnerabilidades XSS tienen los siguientes tres tipos según los diferentes métodos de ataque y explotación:
Tipo 1. Vulnerabilidades de explotación local Este tipo de vulnerabilidad existe en la propia página del script del cliente. El proceso de ataque es el siguiente:
Alice envía una URL web construida maliciosamente a Bob.
Bob hace clic y ve la URL.
El JavaScript de la página maliciosa abre una página HTML vulnerable y la instala en la computadora de Bob.
La página HTML vulnerable contiene JavaScript que se puede ejecutar localmente en la computadora de Bob.
El script malicioso de Alice puede ejecutar comandos en la computadora de Bob usando los permisos que tiene Bob.
El tipo B (vulnerabilidad de reflexión) es algo similar al tipo A, excepto que cuando el cliente web utiliza scripts del lado del servidor para generar páginas para proporcionar datos a los usuarios, si la página contiene usuarios no autenticados, los datos no están codificados. en entidades HTML, luego se inyectará código del lado del cliente en la página dinámica. El ataque se desarrolla de la siguiente manera:
Alice visita con frecuencia un sitio web propiedad de Bob, que ejecuta el inicio de sesión de Alice usando nombre de usuario/contraseña y almacena información confidencial (como información de cuenta bancaria).
Charly descubre que el sitio web de Bob contiene una vulnerabilidad XSS reflejada.
Charly escribe una URL que explota la vulnerabilidad y se la envía a Alice haciéndose pasar por un correo electrónico de Bob.
Después de que Alice inicia sesión en el sitio web de Bob, navega por la URL proporcionada por Charly.
El script malicioso incrustado en la URL se ejecuta en el navegador de Alice como si viniera directamente del servidor de Bob. El script roba información confidencial (autorizaciones, tarjeta de crédito, información de cuenta, etc.) y luego la envía al sitio web de Charly sin el conocimiento de Alice.
El tipo C, o vulnerabilidad de almacenamiento, es la vulnerabilidad más utilizada y puede afectar a la seguridad del propio servidor web. Los piratas informáticos atacarán los scripts cargados en el servidor web, de modo que todos los usuarios que accedan a la página puedan hacerlo. Amenazado por la filtración de información, incluidos los administradores de servidores web.
El proceso de ataque es el siguiente:
Bob posee un sitio web que permite a los usuarios publicar información/explorar información publicada.
Charly nota que el sitio web de Bob tiene una vulnerabilidad XSS Clase C.
Charly publicó un mensaje popular, atrayendo a otros usuarios a leerlo.
Charly robará a Bob o cualquier otra persona (como Alice) que vea el mensaje su cookie de sesión u otra información.
El tipo A representa una amenaza directa para los usuarios individuales, mientras que los tipos B y C representan una amenaza para las aplicaciones web empresariales.