¿Por qué la aplicación Web Firewall no puede detectar la persistencia de XSS?

4

Este OWASP artículo mencionado que "Al utilizar la validación de datos, solo se puede detectar y prevenir el XSS reflejado, no se puede detectar el XSS persistente, el XSS basado en DOM solo debe tener un grado limitado si parte del ataque se envía en los parámetros de la solicitud". ¿Por qué es así?

Comprendo que una vez que el script malicioso se almacena en la aplicación, ahora cualquier solicitud GET / POST no se verá maliciosa, pero el script se ejecutará en el lado de la víctima. Sin embargo, para llevar a cabo un XSS persistente, un atacante tiene que enviar una solicitud maliciosa al servidor, que debe ser detectada por WAF y, por lo tanto, debe detenerse para que se ejecute.

    
pregunta one 05.07.2016 - 08:02
fuente

2 respuestas

6

Si ajustadamente ajusta su WAF a su aplicación para que pueda distinguir por completo la entrada válida de la no válida para campos de entrada específicos, de lo que debería ser capaz de detectar intentos de inyectar XSS persistentes mediante el uso de la entrada campos.

Pero, por lo general, los WAF no están adaptados a la aplicación específica y, en este caso, solo emplean algunas heurísticas para detectar ataques comunes. Aparte de eso, el XSS persistente puede tener diferentes orígenes y no es necesario agregarlo a la aplicación mediante el uso de campos de entrada o incluso el uso de la interfaz web. Por ejemplo, había una vulnerabilidad de XSS almacenada en el almacén de amazon kindle donde el XSS estaba causado por un script dentro de los metadatos de la descripción del libro: Amazon.com XSS almacenado a través de los metadatos del libro .

    
respondido por el Steffen Ullrich 05.07.2016 - 08:15
fuente
4

Creo que el punto no está redactado idealmente, ya que un WAF puede detectar algunos ataques XSS persistentes.

Pero hay al menos dos problemas:

  • los ataques XSS persistentes no solo ocurren a través de solicitudes web, sino que pueden ocurrir a través de una variedad de otros medios, como el correo electrónico. En realidad, la vulnerabilidad solo se presenta cuando los datos se leen del almacenamiento de datos (por ejemplo, la base de datos) y luego se imprimen. Si WAF no escucha la conexión entre la base de datos y el servidor, lo que no es muy común, por lo que sé, no puede detectar esto.
  • Falta el contexto. Un WAF puede ver la solicitud entrante así como la salida generada. Por lo tanto, puede indicar en qué contexto se hace eco la entrada del usuario y si es seguro hacerlo. Para XSS persistente, este contexto falta, por lo que no está claro si, por ejemplo, ');alert('1 es una entrada segura o no (o cómo se maneja la entrada, y si se hace segura a través de la codificación).
respondido por el tim 05.07.2016 - 08:49
fuente

Lea otras preguntas en las etiquetas