0x01 靶场链接
在线靶场:https://xss.tesla-space.com/
0x02 靶场阶段
Lesson-1
我们可以看到他的传参值点是test,而且传参值可以在页面中回显,下面又说了payload的长度为4,正好和上面的传参值字符长度对应上了
那么我们就可以得出结论了
现在开始进行xss测试,先使用最简单的不带任何绕过方式的js代码进行传参测试
发送进行测试
Lesson-2
我们先传一段正常的字符进行搜索测试
我们先使用第一题的payload进行测试
利用失败,我们打开f12进行分析
我们发现他把传入的js代码直接嵌入到了input标签的value属性中
这个时候我们可以使用闭合input标签的方式进行绕过
闭合成功,成功打入js代码
Lesson-3
输入1先测试一下
我们使用最开始的payload进行测试
显然是不行的,我们打开f12进行分析
我们看到他还是input标签,我们使用第二关的payload进行测试
很显然行不通的
这个时候想到了伪协议的方式进行绕过测试
我们可以把点击事件嵌入到了input当中,但是后面多出来了一个 " ,我们要把它也给闭合掉
很显然还是不行,经过测试我们的一些符号被过滤掉了,但是单引号没有被注释掉,那么我们使用单引号结合注释符号,直接把后面的东西给注释掉,我们学过前端的都知道,在html中的单行注释是 // 我们就直接利用单行注释的方法注释掉后面的内容
js代码打入成功
Lesson-4
发现单引号被过滤掉了,我们再试试双引号闭合进行测试
发现直接打入成功
Lesson-5
发现不行,我们打开f12进行分析
我们发现onclick被转义了,那么就换一个事件来进行测试吧
我们首先闭合value的值然后嵌入一个伪协议标签
我们可以看到,在输入框后面插入了一个ifreme,当我们去点击这个图片的时候就会触发我们的js伪协议代码,从而达到触发js代码的效果
可是他虽然弹了js代码,但是没有显示通关的弹窗,我们只好在想其他伪协议标签的办法了
我们可以看到a标签的伪协议标签已经嵌入了进去,我们点击这个超链接即可触发js代码
打入成功,拿下第五关
Lesson-6
我们打开f12进行分析
看来还有可能是伪协议绕过
很显然他把href属性过滤掉了,我们只能换一个其他的伪协议进行绕过了
我们使用iframe伪协议在试一试
发现src属性也被转义过滤了
我突发奇想,之前几关都没出现过大小写绕过和双写绕过,这次我就来试试能不能在这关使用
完美绕过,成功触发js代码