要求:显示弹窗即为过关
level1
通过修改URL中参数name发现页面test也会被修改,尝试修改name的值
?name=<script>alert(/nice/)</script>
level2
存在文本框,输入<script>alert(/nice/)</script>,页面返回如下,F12查看源码
接下来我们输入单引号,结果如下
再然后输入双引号,结果如下
由此得出value值为双引号闭合,尝试闭合标签"><script>alert(/nice/)</script> 通关
level3
输入"><script>alert(/nice/)</script>回显如下,查看源码,<script>标签依旧存在,但是语句没有执行
输入'><script>alert(/nice/)</script>回显如下
发现<、>、/都被转义了,且value值是用单引号闭合,尝试使用事件绕过
' οninput='alert(/nice/),输入后点击搜索,页面返回再点击文本框即可弹窗
level4
与level3不同,value值是用双引号闭合
payload为 " οninput="alert(/nice/)
level5
通过判断知value值为双引号闭合
输入"><script>alert(/nice/)</script>,回显结果<script>变成<scr_ipt>
尝试修改<script>标签为大写<SCRIPT>,显示结果不变,说明<script>标签用不了,
但是通过显示可知可以嵌入标签,这里我们考虑a标签+伪协议
"><a href="javascript:alert(1)")">nice</a>
level6
输入"><script>alert(/nice/)</script>,查看源码,发现<script>变成<scr_ipt>
尝试修改<script>标签为大写<SCRIPT>,"><SCRIPT>alert(/nice/)</SCRIPT>成功弹窗
level7
输入"><SCRIPT>alert(/nice/)</SCRIPT>,查看源码,<script>标签被过滤
尝试双写"><SCRSCRIPTIPT>alert(/nice/)</SCRSCRIPTIPT>
level8
这关跟其他关有点不一样,输入信息并没有再页面上显示,查看源码
经过尝试,标签<script>更改大小写无效,尝试使用用事件发现事件也不行,这里考虑使用为协议
javascript:alert(/nice/)
发现只要有script就会被处理,于是尝试对script进行实体编码处理,这里对p进行实体编码
javascript:alert(/nice/),然后点击添加友情链接,再点击友情链接则通关了
于是,我返回再用<script>并且对p进行实体编码尝试,发现没有效果,那就不纠结了
level9
尝试level8的payload,并没有出现弹窗,查看源码,发现实体编码并没有转回p,于是改回来,但是也没有出现弹窗
于是我尝试了传入正常的url,如下
发现源码中的友情链接的按钮内容发生改变
于是猜测是否只要含有http://即为合法,于是尝试输入并把其注释掉//http://
构造javascript:alert(/nice/) //http://
level10
看起来和第一关有点像,更改keyword=<script>alert(/nice/)</script>
发现回显不了,应该是被转义了,但是我们查看源码,发现<center>标签下有个<form>标签,可以传递值给3个参数t_link、t_history、t_sort,于是我们尝试传入参数并赋值&t_link=1&t_history=2&t_sort=3,发现t_sort可以值可以传入
于是尝试写入弹窗&t_sort=" οninput="alert(/nice/),回车,由于type="hidden",表单不显示在页面,这里我们将hidden删除,然后点击表框输入内容,过关
level11
查看源码,比level10多了个参数
&t_link=1&t_history=2&t_sort=3&t_ref=4
于是像level10一样传入&t_sort=" οninput="alert(/nice/)
发现行不通,尝试其他输入都没有效果......思路断了,回去从一开始查看源码
发现t_ref本身有一个值,通过上面过程知道这个值一改变就会置为空,所以我们尝试在不改变它的值的情况下构造事件,于是尝试在type地方构造事件,过关
level12-level13
与level11类似
level14-level15(略)
level16
查看源码,没发现注入点,但是却有个<center>标签,根据前面的经验,这里可能会有一个参数,
于是尝试传入name,发现并没有回显,尝试传入keyword,回显内容
于是构造js,<script>alert(/nice/)</script> ,发现<script>标签、斜杠、都被过滤
再尝试用其他标签 <input>,发现可以写入标签,但是,向标签写入属性之后,却无法回显输入内容,<input value=1 οninput=alert(nice)>如图,说明空格%20用不了,试试能否使用换行%0a
<input%0avalue=1%0aοninput=alert(nice)> ,过关
level17
尝试修改url参数的值,查看源码,发现参数传入位于<embed>标签中,如图
尝试能否闭合标签,发现都用不了,但是输入空格+事件发现可以嵌入到标签里面
尝试使用其他事件%20οnmοusemοve=alert(1) ,过关
level18
跟level17一样
level19、level20
做了好久没做出来。。。