¿Se consideraría "Almacenado" a XSS en el almacenamiento local?

3

Me pregunto qué clase de scripts de sitios cruzados sería si se inyecta en el almacenamiento local. ¿Sería "almacenado", "reflejado" o tal vez algo más?

Un ejemplo de lo que quiero decir:

  • Encontré un sitio web que es vulnerable a XSS reflejado (vamos a referirlo como vulnerable.com).
  • Usando este XSS reflejado edito algunos JSON en el localStorage.
    • Cambié una parte del JSON a esto: "imgUrl":"https://vulnerable.com/products/some-product.jpg\" onload=\"alert(1)",
  • Cuando el usuario reinicia el navegador y abre vulnerable.com, aparecerá una alerta.

OWASP declara que no está "almacenado" ( source ):

  

Los ataques almacenados son aquellos en los que el script inyectado se almacena permanentemente en los servidores de destino, como en una base de datos, en un foro de mensajes, registro de visitantes, campo de comentarios, etc.

Pero OWASP también afirma que no está "reflejado" ( source ):

  

Los ataques reflejados son aquellos en los que el script inyectado se refleja en el servidor web, como en un mensaje de error, el resultado de la búsqueda o cualquier otra respuesta que incluya parte o toda la entrada enviada al servidor como parte de la solicitud.

¿Hay alguien que sepa?

    
pregunta Tijme 16.12.2016 - 15:54
fuente

2 respuestas

2

Actualizando mi respuesta en base a la información que proporcionó @AviD (¡Gracias! Aprendí algo nuevo).

De la página OWASP XSS :

  

Durante años, la mayoría de la gente pensó en estos (Almacenado, Reflejado, DOM) como   Tres tipos diferentes de XSS, pero en realidad, se superponen. Usted puede   tienen ambos XSS basados en DOM almacenados y reflejados. También puede haber almacenado   y reflejado no basado en DOM XSS también, pero eso es confuso, por lo que para ayudar   Aclarar las cosas, a partir de mediados de 2012, la comunidad investigadora.   propuso y comenzó a usar dos nuevos términos para ayudar a organizar los tipos de   XSS que pueden ocurrir:

     
  • Servidor XSS
  •   
  • Cliente XSS
  •   

NosepareceaunservidoralmacenadoXSSbasadoenloquehasdescrito.Silosdatosenelalmacenamientolocalnoseenvíanalservidorencadasolicitud(osolicitudesespecíficas)ynose"refleja" en la respuesta HTTP del servidor, no debe considerarse un servidor reflejado XSS.

En este caso, la carga útil (JS) se almacena en el cliente (navegador) en el almacenamiento local, debe considerarse como un XSS almacenado en el cliente (de nuevo, estoy de acuerdo con @AviD aquí). Ahora bien, si esta carga útil simplemente se insertó nuevamente en el DOM y no se almacenó en el cliente (navegador), debería haber sido un caso de un Cliente Reflejado XSS.

Solo una pequeña nota en Self XSS : algo que no se menciona en el sitio de OWASP: si solo puede cambiar eso en su propio navegador y no puede engañar "de forma remota" esta inserción de código JS en el almacenamiento local de algún otro usuario, por ejemplo: al pedirles que hagan clic en una URL, lo consideraría como un Self XSS . Los atacantes tienden a explotar Self XSS principalmente a través de estafas como publicar / compartir cargas maliciosas en redes sociales y pedir a los usuarios que las peguen en las consolas JS de su navegador para ver cómo sucede algo mágico.

    
respondido por el Rahil Arora 16.12.2016 - 16:11
fuente
1

En realidad, no hay solo 2 clases (o incluso 3) de XSS (almacenadas, reflejadas y basadas en DOM), hay 4, a lo largo de 2 ejes independientes diferentes:

  • Almacenado / Reflejado
  • Servidor / Cliente

(Y el llamado XSS basado en DOM es en realidad solo un subconjunto de Client XSS.)

Entonces, en su caso, es simplemente el Cliente Almacenado XSS.

ver, por ejemplo, Tipos de secuencias de comandos entre sitios en OWASP :

  

Dado que tanto Server XSS como Client XSS pueden almacenarse o reflejarse, esta nueva terminología da como resultado una matriz simple, limpia, de 2 x 2 con Client & El servidor XSS en un eje, y el XSS almacenado y reflejado en el otro eje como se muestra aquí

    
respondido por el AviD 20.12.2016 - 02:30
fuente

Lea otras preguntas en las etiquetas