第十一关:Reflected Cross Site Scripting (XSS)
low
这一关没有任何防护,直接输入弹窗
<script>alert('xss')</script>
打开网页源代码, 从源代码中我们可以看到,前面是输出的第一部分Hello,我们输入的脚本被成功解析执行,所以出现了弹窗
medium
查看源码,发现对<script>进行了过滤,把<script>替换成空,但是其实还是不够安全
构造payload
双写绕过 <scr<script>ipt>alert("xss")</script>
或者大小写绕过<ScrIpt>alert("xss")</script>
high
查看源码,/i是大小写通用,只要出现script的都会被替换掉
所以我们要使用别的语句来替换含script的脚本
我们可以用图片插入语句
<img src =1 onerror = alert("xss")>
impossible
可以看出多了user_token和session_token,这是防csrf的,因为经常是xss+csrf结合攻击,然后他对我们输入的内容用htmlspecialchars() 函数进行处理
htmlspecialchars() 函数的定义和用法,类似于转义