开启第四关 查看源代码 这里我们看到,我们传入进去的值又经过了两个函数的参与。 函数说明: Str_replace(“>”,””,$str),此函数将变量str中的字符>转换为空,转换时区分大小写。同理将<装换为空,然后在经过htmlspecialchars()函数,将一些预定义符号转换为html实体。 通过这几个函数的过滤转化,我们前三关的payload肯定对不能用的。所以接下来我们需要做的就是,在没有符号“<>”的情况下,并且语句不被htmlspecialchars()函数影响的情况下构建payload。 所以我们在这里可以构造一个输入到文本框后出现相应的事件。我们的payload: “ onfocus=alert(1) autofocus=” 这样我们输入的payload没有被函数过滤,并且经过htmldpecailchars()函数转换并不影响最 input文本框。所以输入后文本框内容就变成了: <input name=keyword value=””onfocus=alert(1) autofocus=””> Onfocus事件:定义的事件将在对象获得焦点时触发,这里指input标签获得焦点。 Autofocus属性:input标签的属性,当页面加载input标签,自动获得焦点。 焦点:这里指你的光标的位置,也就是说当你的光标出现在input文本框这里,将进行onfocus事件的发生。 我们的结果: 方法不唯一,欢迎加入你的体会。 总结:每段代码有它的安全机制,同样也有它的局限性,这关的代码虽然感觉写的很不错,但是,往往还是能被利用并绕过。你使用了过滤符号的机制,而我可以绕过你的过滤攻击你。这里过滤<>符号,攻击的时候就不使用带有这样符号的paylod就可以

请开启<第五关>