实验环境

靶场:centOS 7 xss-labs

靶机:win 7

第三关


进去后发现也有个搜索框,我们输入123 后搜索,然后回车查看元素

XSS闯关3_搜索

 

 

 发现和第二关一样,这样,我们继续用第二关的payload试试看:



"><script>alert('hello');</script>


发现已经把某一部分东西给过滤了

XSS闯关3_搜索_02

 

 

 好,我们继续用123 探索,看把什么东西给过滤了:

XSS闯关3_单引号_03

 

 

 发现把单引号 ' 个给过滤了,其余符号进行转码处理了,

这样我们可以尝试构造payload:



'><script>alert("hello");</script>


XSS闯关3_单引号_04

 

 




 

 

发现还不对,这样我们可以考虑事件处理的方式来解题:



1' onmouseover=alert(document.domain);


XSS闯关3_php_05

 

 

 

这样看起来像了,但是依旧没成功,仔细观察元素发现,原来alert('hello');后面有单引号和双引号,我们可以注释掉这2个,所以,继续构造payload



1' onmouseover=alert(document.domain);//


 

XSS闯关3_双引号_06

 

 

 

 成功进入下一环

 

最后,查看源码,发现在value里用了 htmlspecialchars 函数,

XSS闯关3_搜索_07

 

 

百度查询得知,该方法是PHP的函数,是将预定义的字符转换为html实例

 XSS闯关3_单引号_08