这个靶场每一关的目的都已一样,在页面弹出对话框就算过关,废话少说,直接进入主题
第一关:
查看源代码,发现url里面的test就是h2标签里面的test,只需要修改
<script>alert()</script>
第二关:
将<input>提前闭合,然后插入<script>
"><script>alert</script>
第三关:
简单测试一下,发现:" <>都被转义了。
而且,value用的单引号 “ ' ”
所以我们也用',使用onmouseout属性
' οnmοuseοut='alert()'>
第四关:
照惯例测试一下:
我们发现屏蔽了<>
我们用:onmouseout,鼠标移动input框,就可以触发弹窗
"οnmοuseοut="alert()"
第五关:
我们测试发现系统屏蔽了<script>,在里面加了一个_
试了试onmouseout,发现也被屏蔽了
妈蛋全被屏蔽了、、、
没关系我们试试<a>标签,在href里面用伪协议试试:
"><a href="javascript:alert()">点我</a>
成功,看开他没有屏蔽href和Javascript。
第六关:
照例先测试,
不意外,全被屏蔽了
因为在html里面是不区分大小写的,我们试试吧属性换成大写
"><a HREF="javascript:alert()">ss
点击,创建的链接名ss,成功弹窗。
第七关:
照例测试
发现onmouseout的on,script不见了
首先考虑复写,形式就是oonnmouseout,sscriptcript
成功!
"><sscriptcript>alert()</sscriptcript>
第八关:
观察第八关,多了一个友情链接。
老方法测试一下:
我们发现input中的符号,全被屏蔽了,而我们写的代码,被传递到<a>中后,屏蔽的不多,所以我们从<a>中入手。
" 被转义了,所以我们就在直接在href中写伪协议
运行后发现:javascript被修改了
我们将javascript实体化编码,查询到r的实体化编码为r 替换一下
点击友情链接,弹出,success!
javascript:alert()
第九关:
我们发现输入www.baidu.com,友情链接还是不合法,所以我们多试试几个,http://www.baidu.com,https://www.baidu.com
试了几次发现只要我们输入的里面有http://就可以成功显示
所以,我们就可以吧http://注释掉,就可以注入我们想要的东西
javascript:alert()>//http://www.baidu.com
发现javascript被屏蔽了,我们实体化转码试试,r的实体化转码为r
javascript:alert()//http://www.baidu.com
第十关:
我们看源码
发现有三个input是隐藏的我们把hidden修改为button就可以看见
我们试着在url栏里面给这三个赋值
我们可以看到t_sort被成功赋值了,我们就可以利用这个点进行性xss攻击
并且把type设置成button,回车,点击,成功弹出!