WooYun DVWA-XSS #02-TwoVars
黑盒测试
两个输入框,分别输入1,2看看

这是在拼接吗?

闭合一下试试

看到被实体编码了

unicode编码绕过试试,将<进行编码

&被过滤了

无从下手
源码分析
提示也看不懂

看看源码:进行了实体转义,没了

百度
太邪门了,看源码也不知道怎么做,看看大佬的分析:
aaaa\和=1;alert(1);function/**/from(){}//,将这两个填入框中就可以弹框了解释下为什么这样可以弹框吧。
var x="..."+"&ss=aaaa\"+"&from==1;alert(1);function/**/from(){}//"+"¶m=";//后面省略。首先,在
&ss那里输入\会将后面的"进行转义,所以就变成了
var x="..."+"&ss=aaaa\"+"然后后面的
&就变成了位运算符了,而不是字符串了。而当第二个框中输入
=1时,会和from=形成一个from==1的比较结果的布尔值。所以此时
var x就结束了(所以后面加了一个;),那接着就执行alert(1),但是from并没有定义,js的代码一句出错,后面的不会执行了
所以又通过
function from (){}定义了一个空函数from。中间的
/**/是因为空格会被转义,用%0a也是一样的,%0d也行。最后由于多出来了
¶m=前后相关的字符串,所以在函数结束符后{}就加上//全都注释掉。

浙公网安备 33010602011771号