因传播、使用本公众号提供的信息而造成的任何直接或间接的后果和损失,由用户自行承担。公众号及作者对此不承担任何责任。一旦发生任何后果,请自行承担风险!如有侵权,请告知,我们将立即删除并致歉,谢谢!
0x01 射击场链接
在线靶场:https://xss.tesla-space.com/
0x02 射击场第一阶段
我们可以看到它的参数值点是test,并且页面上可以回显该参数值。下面提到的长度是4,对应上面参数值的字符长度。
那么我们可以得出结论
现在开始xss测试,首先使用最简单的js代码,不使用任何绕过方法进行参数传递测试
发送测试
-2
我们先传入一个普通字符进行搜索测试
我们先用第一个问题来测试一下。
漏洞利用失败,我们打开f12进行分析
我们发现他将传入的js代码直接嵌入到了input标签的value属性中。
这时我们可以使用关闭input标签的方法来绕过
关闭成功,js代码输入成功。
-3
输入1先测试
我们使用第一个进行测试
显然不行,我们打开f12来分析一下。
我们看到它仍然是一个输入标签,我们使用第二个级别进行测试。
显然这是行不通的
这时候我就想到了用伪协议的方法来绕过测试。
我们可以将点击事件嵌入到输入中,但是末尾多了一个“”,我们也需要将其关闭
显然还是不行。经过测试,我们的一些符号被过滤掉了,但是单引号没有被注释掉。然后我们用单引号结合注释符号直接注释掉下面的东西。我们都知道如果学过前端的话,html中的单行注释就是 // 我们会直接使用单行注释的方法来注释掉后面的内容
js代码输入成功
-4
发现单引号被过滤掉了,我们尝试关闭双引号进行测试。
发现直接进入成功
-5
如果不行,我们打开f12进行分析。
我们发现它被转义了,那么我们换一个事件来测试一下。
我们先关闭value的值,然后嵌入一个伪协议标签
我们可以看到输入框后面插入了一个。当我们点击这张图片的时候,我们的js伪协议代码就会被触发,从而达到触发js代码的效果。
但他虽然玩了js代码,却没有弹窗清关,所以我们只好想其他办法,使用伪协议标签。
我们可以看到a标签的伪协议标签已经被嵌入了。我们可以通过点击这个超链接来触发js代码。
成功晋级,获得第五关
-6
我们打开f12进行分析
看来可能存在伪协议绕过。
显然他过滤掉了href属性,我们只能使用另一个伪协议来绕过它。
让我们使用伪协议尝试一下
发现src属性也被转义和过滤
我突然想到和在前面的关卡中还没有出现过。这次我就尝试一下,看看能不能在这个关卡中使用。
完美绕过,成功触发js代码
-7
我发现他过滤掉了直接信息。这时候我们还有另一个法宝:双写旁路。
接下来我们测试一下看看
写入成功,js代码触发成功。
-8
我们先打开f12,做一下简单的分析。
我们可以看到,在输入框中输入的内容将会作为链接添加到下面的友情链接的超链接中。那么我们是否可以使用伪协议直接将js代码嵌入到这个超链接中呢?我们现在就尝试一下
我们可以看到嵌入成功了,说明思路是正确的,但是被转义过滤掉了。这个时候我们就得想办法绕过它。
这次比之前的关卡稍微难一点。我想到了一个绕过过滤的方法。如果你不让我用纯文本,我就对其进行编码,你就认不出我了,从而实现了绕过过滤器的方法。
我这里使用的是HTML编码来绕过
成功晋级,获得八级
-9
使用之前的级别进行第一次测试
OK,插入成功
让我们点击超链接来尝试一下
既然这种编码不起作用,那么我们尝试另一种编码。
如果这样不行的话,我们可以自己用js代码写一个html,然后嵌入到value中。
弹出一个窗口,但我没有得到我想要的答案。这个窗口属于你写的网页的窗口,而不是问题所属网页的窗口。
这时候经过分析才知道,是必须要有的,这样才不会提示链接非法?
我测试了这个想法,发现我的想法是正确的。
下面说说清关思路。
我发现这次链接不合法,但是伪协议不会被执行。这时候我想,既然要有伪协议代码并执行它,那只能先写出来,然后注释掉。这是绕过过滤的方法
好的,成功通过
-10
这次我不会给你任何东西。我们先打开f12进行分析。
我们发现输入已成为隐藏字段。由于参数传输方式为GET,因此可以直接在URL栏中传递参数。在这种情况下,我们可以直接发送隐藏字段中任意输入经过篡改后的属性和值。达到xss攻击的目的
但是当我们点击输入框的时候,我们的js代码并没有触发
我们用f12继续分析
如果我们发现多了一个双引号,那么我们可以再添加一个双引号,然后关闭单引号即可。
完美的闭合
点击输入框后触发js事件,于是我们成功进入xss,成功获得第十关。
-11
显然没有入口点。我们也无法输入 URL。这时候我们就可以使用抓包的方式进入。
我们先捕获数据包并进行分析。
我们可以看到他没有。我们可以通过伪造输入一些东西。
我这里演示的是如何在弹出窗口的文本框中输入内容。
发布包即可查看页面变化
成功输入文本框
用f12检查后,我们发现这是一个带有弹出窗口的文本框,我们使用
当我们点击的时候,会直接触发js代码。
-12
我们先尝试一下11级,看看是否有效。
显然这是行不通的
那我们就得思考一下。既然不行,那我们是不是还有一个UA http 注入还没用过,对吧?
我们可以先在这里尝试一下,万一成功的话
用户代理:/5.0(NT 10.0;Win64;x64)/537.36(KHTML,如 Gecko)/79.0.3945.88 /537.36" =alert(1) type="text"
这是
我们可以看到文本框输入成功
我们点击文本框触发js代码
完美渗透
-13
从上面两个关于数据包的js代码注入的问题可以知道,这个问题应该还是关于数据包类型注入的。我们想一想,还有没有其他的呢?
我们这里就不一一测试了。看看那一段就知道了。很明显有数据传输。我们想知道是否可以用它来输入带有js代码的文本框?
我们现在就尝试一下
发送数据包查看页面变化
页面上出现一个文本框,我们已经嵌入了点击输入框触发js注入代码的代码。现在我们可以直接点击文本框来触发我们写好的条件。
js代码输入成功
-14
该关卡的图片还没有加载,所以没办法测试。于是我在网上找了一些参考资料,自己记录下来:
查看源代码,发现了exif。我猜应该是exif xss,但是由于网络原因无法访问这个链接。 exif xss一般用于文件上传。最经典的就是头像上传。当你上传图片时,将图片的exif元数据修改为xss,成功使用弹窗。具体实现可以使用kali下的工具。命令如下:
exiftool -FIELD=XSS FILE
exiftool -Artist=' "><img src=1 onerror=alert(document.domain)>' brute.jpeg
-15
看代码,这一层就是知识了。 ng-表示包含文件,相当于php中的。这里可以包含第一级的页面。
结构:
在 url 处写下语句,
src='level1.php?name=<img src=x onerror=alert(1)>'
如下图所示,没有被利用成功。搜索中发现的另一位作者表示,这是因为它需要访问 .main.js。
必须包含js文件才能包含。在虚拟机环境下无法访问。看来是需要的。
-16
检查代码发现case绕过无效。 、 /、 等均转换为 .这时候可以尝试使用%0a和%0d来绕过。
施工说明:
Keyword=0dsrc=a%0donerror=alert(16)>
Keyword=dsrc=0%0donmouseover=alert`16`>
Keyword=
完美进入js代码
-17
打开源码发现两个注入点结构
我们发现两个输出的值都已经物化并转义了,标签无法关闭。嵌入标签可以添加事件。可以将事件添加到arg01或arg02来触发。
测试语句:
arg01=a&arg02=%20onmouseover=alert`1`
-19
页面源码,不插入语句时:
页面源码,插入语句后:
:
URL 或 IP 地址
/xss/level19.php?arg01=version&arg02=<ahref="javascript:alert(document.domain)">xss_by_didia>
点击“”即可触发XSS。
解决问题的思路:
flash xss,需要反编译flash并分析源码。这里我们使用jpexs-来分析,首先定位到函数
已知loc4变量可以传入参数,即sIFR的内容,但只有内容为link时才打开,所以分析函数
所以我们可以构造标签来传递值
-19
我们在不知不觉中已经到达了最后一层
payload:level20.php?arg01=a&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height
成功弹出窗口
xss常用标签
<script>
<img>
<input>
<details>
<svg>
<select>
<iframe>
<video>
<audio>
<body>
这里只列举了一部分常用
★
付费圈子
欢迎来到星球!
代码审计+防病毒+渗透学习资源+各类文档+各类工具+付费会员
加入内部成员组
近期的主题以及内部工具的一些展示
注意并保持礼貌
关注下方公众号并回复“666”即可领取一套优质渗透测试工具和百度云视频链接。
你还在等什么?赶紧点击下方名片关注学习吧!
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。