实验环境
靶场:centOS 7 xss-labs
靶机:win 7
第三关
链接:http://靶场ip/xss-labs/level3.php?writing=wait
进去后发现也有个搜索框,我们输入123 后搜索,然后回车查看元素
发现和第二关一样,这样,我们继续用第二关的payload试试看:
"><script>alert('hello');</script>
发现已经把某一部分东西给过滤了
好,我们继续用123 探索,看把什么东西给过滤了:
发现把单引号 ' 个给过滤了,其余符号进行转码处理了,
这样我们可以尝试构造payload:
'><script>alert("hello");</script>
发现还不对,这样我们可以考虑事件处理的方式来解题:
1' onm ouseover=alert(document.domain);
这样看起来像了,但是依旧没成功,仔细观察元素发现,原来alert('hello');后面有单引号和双引号,我们可以注释掉这2个,所以,继续构造payload
1' onm ouseover=alert(document.domain);//
成功进入下一环
最后,查看源码,发现在value里用了 htmlspecialchars 函数,
百度查询得知,该方法是PHP的函数,是将预定义的字符转换为html实例