文章目录
前言
本篇文章将介绍在xsslabs这个靶场中每一个关卡的详细通关策略,若有瑕疵还望客官多多担待。
一、level 1
思路
在本次关卡中首先试一下常见的弹窗函数,因为在第一关基本关卡的设置不会很难。
实现
<image src=1 onerror="alert(1)">//利用了image标签的特性,当插入的图片不存在的时候,就会执行onerror。
二、levle 2
思路
1.根据上一关卡的思路,当我们输入第一关用的image标签实现绕过的时候发现出现了下图的结果
2.我们直接看此网页的源码来看这句代码在实现的时候被解析成啥。
在分析网页源码的时候看到,将输入的代码放入到了value
里面,我们就可以采用">
闭合标签。
方法一:"><image src=1 οnerrοr="alert(1)">
方法二:"onfocus="alert(1)"//onfocus事件实现绕过,注意成功之后要点击输入框才可以实现弹窗
三、level 3
思路
1.输入上个关卡的代码发现将<>
转换为了html实体2.可以采用
onfocus
事件进行绕过操作,分析本关的源码可以看到是单引号闭合
实现
'οnfοcus='alert(1)'
四、level 4
思路
此关和第二关的绕过思路一样,使用onfocus事件来实现绕过,这次是双引号闭合
实现
"οnfοcus="alert(1)"
五、level 5
思路
1.在利用上个关卡的代码实行绕过的时候查看网页源码发现on
被替换成了o_n
2.试一下
script
标签发现script
被替换成了scr_ipt
3.on和script
都用不了,但是通过这几次看网页源码的时候发现并没有过滤<>
,可以用<a href="#">
在a标签中,最重要的是href属性,这个属性可以实现一个链接到javascript
实现
"><a href="javascript:alert(1)">点击</a>
上述代码实现了一个链接到javascript的命令当点击代码中的点击时就会执行href后面链接的javascript
六、level 6
思路
利用上一关实现绕过操作的代码执行发现href
被替换成了hr_ef
,通过代码审计可以看出这个网页并没有实现将大小写的限制,所以可以采用转大写绕过。
实现
"><a HREF="javascript:alert(1)">点击</a>
七、level 7
思路
1.继续沿用上一关的代码发现本关新加了将大写转为小写并将href
过滤
2.利用"><script>alert(1)</script>
发现script被过滤
3.利用onfocus
事件进行绕过发现on
这个关键字被过滤。
4.本关通过测试可以看到过滤了href,script,on
。因为过滤了on
,我们可以采用双写绕过。可以构造oonn
,这样就可以利用本来过滤on
的功能,当过滤中间on
时然后两边的字母重新重组为on
实现绕过操作
实现
"oonnfocus="alert(1)"
八、level 8
思路
当我们沿用前面的关卡"><script>alert(1)</script>,"><a href="javascript:alert(1)">,"onfocus="alert(1)"
都无法实现绕过操作,我们可以试一下将命令转编码实现绕过操作。我采用转10进制的html实体编码。
实现
javascript:alert(1)//javascript:alert(1)
九、level 9
思路
当我们沿用上一关的代码时候发现链接不合法,可以猜测本关实现了一个网址的效验功能。我们可以输入一个正确的网址并利用js中的注释符来注释这个网址,只要让网址效验通过就行
实现
javascript:alert(1)//http://www.qq.com
十、level 10
思路
延续前面关卡的思路,我们发现"",<>
都被实体化了
只能查看源码进行分析,通过查看源码看到htmlspecialchars这个函数是将预定义的字符进行实体化。我们发现还有其他的隐藏传递的方法,这里得get传参到str11,并且过滤了<>,所以我们可以用onfocus函数来实现绕过,但input已经被隐藏所以我们需要添加type="text"构造pyload。
实现
?t_sort="οnfοcus=javascript:alert(1) type="text"
十一、level 11
思路
和上一关一样直接查看源码,发现在本关str00也被实体化了,但我们发现str11存在一个Referer,http的请求头部字段,这个并没有什么过滤所以可以利用Referer来实现。
实现
1.可以用Firefox里面的hackbar插件来实现,但有一个缺点有时候hackbar执行不了。‘我的也没执行’
在可以运行的情况下点击Execute就可以实现xss注入
2.直接使用bp来抓包改包操作(后面基本用bp抓包改包实现)
Referer: "οnfοcus=javascript:alert(1) type="text"
十二、level 12
思路
延续上关的思路,继续分析源码,可以看出可以利用http中的Usert-agent字段来实现
实现
直接用bp来抓取数据包改包,修改User-agent字段最后点击forward将修改的包放过去
User-agent:"οnfοcus=javascript:alert(1) type="text"
十三、level 13
思路
继续查看源码,可以看出这一关用的是cookie字段
实现
还是直接用bp抓包修改cookie字段来实现操作。
Cookie: user="οnfοcus=javascript:alert(1) type="text"