xss-labs靶场第16关

前言:

直接就是干,就完了

正文:

目录

前期思路,自己想

中期思路(看源码)

靶场分析的结果

后期思路(看答案)

构造payload:

思考1:为啥我用网络上自带的html在线运行网站,不能弹窗?

总结思路


前期思路,自己想

这一关比上一关更加懵逼,就是说没有任何参数,包括上一关还有个ng-include提示,

现在这一关都没有提示了,

废话不多说,我这关的思路如下,

我猜解这个有payload的字段,有写payload为多少字数时,就应该想到了这关有隐藏参数,随机我就采用了参数爆破,但是我之前是level16.php?aa=111

这个111只有三个数,那个显示payload长度为3,不是和原始的payload的长度为0,

他的响应包大小不是没有发生改变,随即我就将payload设置为<script>alert(1)</script>

这样一来,payload的长度就有23,和原来的0,他的响应长度就发生改变了

和最高爆破数量为3,开爆

不出意外的话,要出意外了,意外没有爆出来

我还想着,使用匹配的方式,payload的长度:0,就是将这个排除掉,但是没有那个使用长一点的payload的方便,而且的话

匹配方式的话还是有问题的,不能有中文,会乱码,根据网上了解,,反正就是要将那个

中文的格式转换为/x94,这种格式,我也不知道,在网上找的话,好像要采用python来转换,太麻烦,不想搞,其他方式的话,又没找到,又想用正则表达式进行匹配,反正就是什么都想搞,什么都没有搞成

匹配了这么久,还是没有匹配上,已经初见端倪了

ok,不必多说,算了看源代码,

发现他的参数值长度为7位,这爆多久才能爆出来啊,废了 ,

我的想法是,这关的目的应该是要我们弄个那个参数字典,然后字典的话,应该是要带有这个keyword这个参数的,

中期思路(看源码)

只能看一下这个的闯关源代码了,发现有个参数keyboard,在靶场地址后面构建这个参数,发现没有任何反应

离谱,看错参数了,ok,

震惊我好久了,原来chatgpt也不会,首先我没有开启网页搜索,是他自己从知识库里面分析的,

给我的xss的payload不可用,然后就是说

我自己从

靶场分析的结果

1、不能使用空格,空格被编码了(啊,第一次知道空格被编码还会影响xss的执行)

2、不能使用script等危险标签,script被编码了(但是尖括号没有被编码)

3、/被编码了(导致我不能使用那个<svg/>的那个了,那个不带有空格)

在网上找了还是没有找到对应的结果

后期思路(看答案)

也就是说,这个答案的话,就是绕过空格的一个方法

也就是用空格,换行符来代替空格,但是浏览器解析的时候,会将%0A当做换行符来处理,也就是说,没有过滤掉换行符,导致了绕过

payload实现,首先用没有过滤掉的<svg>

构造payload:

<svg%0Aonload=alert(1)>

思考1:为啥我用网络上自带的html在线运行网站,不能弹窗?

在在线html代码运行HTML/CSS/Javascript在线代码运行工具 | 菜鸟教程,运行这段代码<svg%0Aonload=alert(1)>,不能够弹窗?

首先理解一下,%0A是换行符的意思

问了chatgpt,大概就是说直接在哪里输的话,会被当做文本形式处理,他不会将url解码,就是说少了url解码这一步,

然后它让我就是,直接输入\n的话,应该就会解析,我试试,好像不行,

在特定环境下能解析,例如

在js代码和python字符串执行环境中,\n可以就是当成换行符

html和url环境中,\n不能当做换行符,(url中,需要换成%0A)        

总结思路

使用字典,先爆出来这个隐藏的参数值,然后的话就是去构造xss参数,然后去寻找除script标签的其他标签,然后就是绕过空格的方法

实战知识点

1、拥有参数字典,枚举隐藏参数

2、知道常见过滤,如\,空格的绕过方法(在一般没有过滤尖括号的情况下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值