La alerta XSS no funciona con una cadena concatenada

0

He notado que el siguiente XSS almacenado no se ejecuta, mientras que en la consola JS funciona:

<img src=0 onerror=alert(document.domain+": "+Date.now())>

Esto no muestra un cuadro de alerta. Mientras que los siguientes hacen:

<img src=0 onerror=alert(Date.now())>
<img src=0 onerror=alert(document.domain)>

La conversión de cualquiera de los elementos con String() tampoco ayuda.

La declaración de alerta simple ( alert(document.domain+": "+Date.now()) ) funciona en la consola de Chrome JS, en Firefox funciona si agrego el punto y coma al final.

Ciertamente no soy un asistente de JS, pero no veo por qué esto no funciona.

¿Por qué no funciona el XSS inicial a través de la etiqueta de imagen?

    
pregunta GarlicCheese 15.11.2018 - 12:34
fuente

2 respuestas

3

Debe eliminar el espacio en ": " o agregar comillas para el valor del atributo onerror:

<img src=0 onerror='alert(document.domain+": "+Date.now())'>
    
respondido por el Aleksandr Ryabov 15.11.2018 - 19:15
fuente
2

Pones una cita en el original. Esto confunde el analizador HTML porque " tiene un significado especial dentro del espacio de atributos de una etiqueta.

Estoy equivocado. Es el espacio.

    
respondido por el Polynomial 15.11.2018 - 12:36
fuente

Lea otras preguntas en las etiquetas