接下来我们来看第十六关:
我们首先检查一下页面源代码:
我们发现了我们传入的参数test
我们猜测它会对输入进行过滤,我们测试一下:
我们很容易就发现,程序对空格,/,等符号进行替换,被实体化了,也就是说,我们没法用/ 空格等符号构建payload,
我们原本用到的payload如下:<img src=111 οnerrοr=alert(1314)>
大家可能有疑惑,我来解释一下,这段payload没有用到/符号,它通过在页面中添加一个<img>标签,来在页面中添加一张图片,src后面的内容就是图片的链接,而onerror函数的解释如下:
onerror:该函数在图片加载失败时执行特定的代码,即onerror后面写入的代码
而我们知道,图片链接为111显然是加载不出图片的,此时图片加载就产生了错误,于是就执行了onerror中的代码,弹出了一个弹窗,我们来试试:
我们尝试后很快发现了问题,我们使用的空格被程序实体化了,咋办呢?
此时我们需要用到一个技巧,空格绕过
即将所有空格都替换为%0A
%0A在html中会被重新识别为空格
我们重新构造payload:
<img%0Asrc=111%0Aοnerrοr=alert(1314)>
我们来试试:
成功了!!!!