¿Por qué este desafío XSS requiere% 0A para funcionar?

2

Encontré este desafío XSS hack.me .

La solución a este desafío es:

javascript://%0Aalert(1)

Estoy confundido con %0A . ¿Por qué no funciona con esta carga útil?

javascript://alert(1) 
    
pregunta Abdullah 16.09.2017 - 01:19
fuente

1 respuesta

5

Se requiere para terminar un comentario de Javascript.

El desafío impone un formato de enlace a lo largo de las líneas de [a-z]*://.* . Aquí, la idea es inyectar JS a través del pseudo protocolo javascript: . Entonces, para cumplir con el formato del enlace, debes comenzar tu secuencia con javascript:// .

Pero como todo lo que está detrás de los dos puntos se interpreta como JS, te encuentras con un problema: // introduce un comentario de una sola línea en JS, por lo que todo lo que viene después será comentado hasta que aparezca un carácter de nueva línea. Esto no hará nada:

//alert(1)

%0a es la versión codificada en URL de una nueva línea ASCII, por lo que su carga útil se convierte en la siguiente:

//
alert(1)
    
respondido por el Arminius 16.09.2017 - 02:04
fuente

Lea otras preguntas en las etiquetas