开启第二关!
出现有文本框,尝试用第一关的payload试一试能不能弹框
肯定是不行的。从返回结果上分析应该是将符号<>的意思改变了。来查看源码分析
可以看到当变量接收过来值,经过函数htmlspecialchars()过滤后,在文本框中显示。
Htmlspecialchars()函数作用,是将预定义字符转化为html实体,可以理解为将原有的符号变了心没变相。
所以这时候构造payload就要将input的文本框本分提前闭合,不影响我们弹框代码。
Test”><script>alert(1)</script>
这样input中的内容就会变成
<input name=keyword value=”test”><script>alert(1)</script>>
这样文本库闭合,弹框顺利执行
总结:比第一关多了表单,get传值,若经过过滤传给表单,考虑选择闭合表单;熟知htmlspecialchars()函数的作用。过滤预定义字符串,转换为html实体。
请开启<第三关>
XSS闯关之第二关
原文:http://blog.51cto.com/12332766/2116681