Supongamos que un filtro valida la url, pero no el protocolo. En ese caso, puedo XSS ese campo con la siguiente carga útil
javascript://%0D%0Aalert(document.domain);//validurl.com
Puedes pegar por encima de la carga útil en la barra de la URL de Chrome para ver si se ejecuta.
[En la carga útil anterior, //
comenta el código y %0A
toma el código fuera del comentario.] Aquí hemos agregado cosas entre protocolo y URL para ejecutar xss.
El problema:
Estoy intentando insertar una letra arbitraria, seguida de ( //
), seguida de dos puntos ( :
) delante del protocolo (en lugar de entre el protocolo y la URL como se muestra en el ejemplo anterior), algo como:
a://%0Ajavascript:alert(document.domain);
Pero la carga útil anterior no se ejecutará en Chrome. ¿Hay alguna solución para esto?