XSS reflejado en un bloque de script multilínea

0

Estoy intentando explotar un script de sitio cruzado reflejado en una solicitud GET donde el reflejo está en el primer bloque de script de varias líneas.

Parece que puedo usar todos los caracteres, pero < , > y " y la mejor carga útil que podría encontrar es /?search='}]%3Balert(1)%3B%2F%2F

Y se refleja así:

<head><script> dataLayer = [{ 'pageType': 'Page', 'category': 'Search', 'searchTerm': ''}];alert(1);//', 'searchResults': '0', }]; </script>

Lamentablemente esto no funciona. Tampoco lo hace con / * en lugar de // para comentar el resto del bloque de script. ¿Hay alguna forma de hacerlo funcionar sin usar "<" y ">"? Ahora falla con "SyntaxError: token inesperado: ':'"

    
pregunta 6661620a 15.11.2018 - 03:27
fuente

1 respuesta

2

No necesitas comentar nada.

Uso:

/?search='-alert()-'

JS intentará crear la cadena del término de búsqueda a partir de la expresión '' - alert() - '' que activará la función alert . Preferí - en lugar de + porque evita posibles problemas con la codificación de URL y rara vez se incluye en la lista negra, pero también puedes usar otros operadores binarios para comprimir tu carga útil sin causar un error de sintaxis.

    
respondido por el Arminius 15.11.2018 - 06:27
fuente

Lea otras preguntas en las etiquetas