首先,先点击F12
按钮打开网页源码
发现URL的name值可以随意输入,所以直接上script方法。
payload:
http://test/level1.php?name=a
#也可以输入其他的标签,比如img、svg等
先输入a来试试
查看网页源码,发现输入的数据存到了input标签的value属性里面,所以直接闭合该标签来通关。
payload:
a">
先输入试试
查看网页源码,和第二关类似,先闭合input标签再弹窗,但是输入数据后,发现后面多了">
,该方法不行。
再到调试器里面看一下源码,发现对我们的js进行了实体编码,所以代码没生效,并且有单引号出
现,所以考虑使用单引号闭合,然后利用input中的点击触发事件来通关。
payload:
'onclick='alert(1)
弹窗需要再次点击输入框
先输入来试试
发现script的<、>被过滤了,可以再次使用上一关的答案进行通关。
payload:
"onclick="alert(1)
先输入来试试
发现script标签被_
分隔了,
再尝试双引号闭合,使用点击触发事件,结果发现它把onclick也过滤了,
再尝试使用大写
大写也被过滤了,现在试一下a标签,发现a标签可以。
payload:
">aa
#弹窗需要点击aa触发
老样子,先输入来试试
发现和上一关一样,script被_
分隔了,现在尝试使用点击触发事件onclick
发现onclick也被过滤了。再试一下大写,发现可以弹窗。
payload:
"ONCLICK="alert(1)
老样子,先输入来试试
过滤了script,触发不了弹窗
再看看源码
对参数值转换成了小写,过滤了script,on,src,data,herf标签,但是它只执行了一次 所以可以双写绕过
尝试双写关键字
payload:
1">alert(1)