文章目录
- 前言
- 一、level1
- 思路
- 实现
- 二、levle2
- 思路
- 三、level3
- 思路
- 实现
- 四、level4
- 思路
- 实现
- 五、level5
- 思路
- 实现
- 六、level6
- 思路
- 实现
- 七、level7
- 思路
- 实现
- 八、level8
- 思路
- 实现
- 九、level9
- 思路
- 实现
前言
本篇文章将介绍在xsslabs这个靶场(在不知道源码的前提下)中每一个关卡的详细通关策略,若有瑕疵还望客官多多担待。
一、level1
思路
在本次关卡中首先试一下常见的弹窗函数,因为在第一关基本关卡的设置不会很难。
实现
<image src=1 onerror="alert(1)">//利用了image标签的特性,当插入的图片不存在的时候,就会执行onerror。
二、levle2
思路
1.根据上一关卡的思路,当我们输入第一关用的image标签实现绕过的时候发现出现了下图的结果
2.我们直接看此网页的源码来看这句代码在实现的时候被解析成啥。
在分析网页源码的时候看到,将输入的代码放入到了value
里面,我们就可以采用">
闭合标签。
方法一:"><image src=1 οnerrοr="alert(1)">
方法二:"onfocus="alert(1)"//onfocus事件实现绕过,注意成功之后要点击输入框才可以实现弹窗
三、level3
思路
1.输入上个关卡的代码发现将<>
转换为了html实体2.可以采用onfocus
事件进行绕过操作,分析本关的源码可以看到是单引号闭合
实现
'οnfοcus='alert(1)'
四、level4
思路
此关和第二关的绕过思路一样,使用onfocus事件来实现绕过,这次是双引号闭合
实现
"οnfοcus="alert(1)"
五、level5
思路
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
六、level6
思路
利用上一关实现绕过操作的代码执行发现href
被替换成了hr_ef
,通过代码审计可以看出这个网页并没有实现将大小写的限制,所以可以采用转大写绕过。
实现
"><a HREF="javascript:alert(1)">点击</a>
七、level7
思路
1.继续沿用上一关的代码发现本关新加了将大写转为小写并将href
过滤
2.利用"><script>alert(1)</script>
发现script被过滤
3.利用onfocus
事件进行绕过发现on
这个关键字被过滤。
4.本关通过测试可以看到过滤了href,script,on
。因为过滤了on
,我们可以采用双写绕过。可以构造oonn
,这样就可以利用本来过滤on
的功能,当过滤中间on
时然后两边的字母重新重组为on
实现绕过操作
实现
"oonnfocus="alert(1)"
八、level8
思路
当我们沿用前面的关卡"><script>alert(1)</script>,"><a href="javascript:alert(1)">,"onfocus="alert(1)"
都无法实现绕过操作,我们可以试一下将命令转编码实现绕过操作。我采用转10进制的html实体编码。
实现
javascript:alert(1)//javascript:alert(1)
九、level9
思路
当我们沿用上一关的代码时候发现链接不合法,可以猜测本关实现了一个网址的效验功能。我们可以输入一个正确的网址并利用js中的注释符来注释这个网址,只要让网址效验通过就行
实现
javascript:alert(1)//http://www.qq.com