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

请开启<第三关>