Estoy buscando una forma de evadir adecuadamente una variable de JavaScript para realizar XSS. Una entrada de usuario normal dará var a='<b>user input</b>'
.
a
no es eval en ninguna parte y no se puede utilizar. Sin embargo, he encontrado algo interesante. Una entrada como %0a%0dalert(1);//
se procesará como:
var a='<b>
alert(1);//</b>'
Mi navegador me está advirtiendo sobre un error de token ilegal. Esto es normal, y debido a que var a
no se cierra.
¿Hay alguna manera de hacer que esto funcione? Ejecutando la función de alerta ignorando el error anterior. '
se escapa como \'
y \
como \
.
Otros elementos básicos Los caracteres HTML también se codifican de manera normal ( " < > &
)