第七关,双写绕过
查看level7.php

分析源码
可以看到把常用的标签,还有事件都进行了替换,并且还有大小写检测。
尝试用常规语句探测
payload:<script>alert()</script>

观察到,引号未被进行转义,<script>变成了<>,关键字被进行了替换,替换成了空字符。
这种情况可以尝试构造双写payload
利用强行替换的特性,构造如下payload
“><scrscriptipt>alert()</scrscriptipt>
原理:
当payload传递过去后,后端会对script进行替换,变成空字符,此时payload剩下的内容为:
“><script>alert()</script>,剩下的内容就是完整的JS代码,浏览器会执行。

同理,也可以双写事件属性,由于过滤的是on,我们在o和n之间再插入一个on即可
payload:
“oonnfocus=”javascript:alert()

使用onfocus,记得点击输入框Ciallo~(∠・ω< )⌒★
