第一关
我们可以发现url中tset值传入了name里,对网页进行抓包,我们可以清楚地看到网页使用get请求
我们直接在test位置输入payload:
<script>alert()</script>
完成本关
第二关
首先我们直接在输入框中输入payload没有成功
查看源码,可以发现输入进去的payload在input下的value中保存,需要"闭合
构造新的payload:
"><script>alert()</script>
完成本关
第三关
我们直接在输入框中输入payload没有成功
查看源码我们会发现与上一题源码相同,同样的输入">,页面仍显示不成功,此时我们可以猜想是不是"<>"符号被实体化
我们可以利用onclick事件绕过,输入框输入
'onclick='alert(1)
再点击输入框
完成本关
第四关
输入payload点击搜索后查看源代码
通过输入框我们可以发现原本输入进去的payload此时变成了scriptalert()/script,于是我们可以猜想"<>"符号是不是被实体化
利用onclick事件绕过,输入框输入
"onclick="alert(1)
,再点击输入框
完成本关
第五关
输入payload点击搜索后查看源代码
我们可以发现输入框中的<script>变成了<scr_ipt>
尝试输入"οnclick="alert(1),我们可以发现其中的on也被过滤了,于是本题我们就需要使用其他的payload来进行操作,其中javaScript:alert(1)就使用了java伪协议
构造新的payload:
"><a href='javascript:alert(1);'>
同理:
"><iframe src="javascript:alert(1)"></iframe>
"><a href="javascript:alert(1)">
也可完成绕过
输入新的payload后点击输入框后的蓝色字体,即可进行跳转
完成本关
第六关
输入payload点击搜索后查看源代码
我们可以发现输入框中的<script>变成了<scr_ipt>
输入"οnclick="alert(1),可以发现同上题一样,其中的on也被过滤了
尝试输入"><a href='javascript:alert(1);'> ,我们可以发现此时href也发生过滤
尝试大小写混合绕过,将href换成大写字母,输入新的payload:
"><a HREF='javascript:alert(1);'>
完成本关
第七关
输入关键字
"OnFocus <sCriPt> <a hReF=javascript:alert()>
查看网页源代码
我们可以发现输入的值变成了
故采用双拼写绕过
双拼写绕过是指攻击者通过在输入中重复写入敏感关键字(如HTML标签、JavaScript关键字、文件扩展名等),以绕过那些仅对敏感关键字进行单次替换或删除的过滤机制。当服务器或应用程序的过滤系统删除或替换掉一个关键字实例时,由于另一个实例仍然存在,因此攻击者能够构造出有效的攻击载荷。
构造新的payload:
"><scscriptript>alert()</scscriptript>
完成本关