XSS-labs靶场实战(三)——第7-8关

今天继续给大家介绍渗透测试相关知识,本文主要内容是XSS-labs靶场实战第7-8关。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、第七关

第七关页面如下所示:
在这里插入图片描述
我们采取第六关的payload,发现不行,但是在查看源码时却可以发现,href和script会丢失,如下所示:
在这里插入图片描述
很自然的,我们想到了后台对href和script进行了过滤,查看源码果然发现了这一点,如下所示:
在这里插入图片描述
针对这种把关键字替换成空白的,最好的方式即采用双写绕过,即我们把href和script插入到href和script之间,当内层的href和script被过滤掉后,外层又拼接形成了href和script,构造payload如下所示:

123"><a hhrefref="javasscriptcript:alert(1)">123</a>

我们使用该payload,即可成功,如下所示:
在这里插入图片描述

二、第八关

第八关页面如下所示:
在这里插入图片描述
通过简单测试,我们可以发现,在第八关中,我们输入的内容会出现在<a>标签中的href属性中,如下所示:
在这里插入图片描述
第八关几乎补全了之前所有的漏洞,我们并不能够使用之前的任何一种payload来进行测试,第八关源码如下所示:
在这里插入图片描述
但是,我们在这一关却可以采用Unicode编码来进行绕过第八关的所有过滤。我们将payload进行Unicode编码,如下所示:
在这里插入图片描述
这样,就可以成功突破本关啦,如下所示:
在这里插入图片描述

三、关于使用Unicode编码绕过的说明

最后,我们来讨论以下之前的关卡能不能也使用Unicode编码来进行绕过的问题,答案非常明确:不能!
比如在第六关使用Unicode编码绕过,结果如下所示:
在这里插入图片描述
细心的同学可能发现,在第八关与前面关卡的区别在于,第八关我们的内容直接作为<a>标签中href的属性,而不是我们构造了一个<a>标签,正是这个小小的区别,导致了在这里我们可以使用Unicode编码绕过,而在其他的关卡中不能使用Unicode编码绕过。
实际上,Unicode编码的作用仅仅是当浏览器处理时,可以自动将其进行解码,但是并不能替换Unicode编码的本质。在第八关中,浏览器处理到<a>标签中href的内容时,发现时Unicode编码,因此会将其解码,并执行其中的语句。第八关采用Unicode编码后对于浏览器而言源码如下所示:
在这里插入图片描述
但是在第六关中,当我们把<a>标签整体进行Unicode编码时,浏览器也会将其进行解码,但是并不会将其作为<a>标签来进行处理。
我们可以进行小的实现,将JavaScript代码整个进行Unicode编码,如下所示:
在这里插入图片描述
访问后,我们能得到解码后的内容,但是浏览器不会将其作为JavaScript代码来进行处理,如下所示:
在这里插入图片描述
如果我们对script标签中的内容进行Unicode编码,如下所示:
在这里插入图片描述
name浏览器会认为这个是script编码,但是并不会将编码中的内容进行解码,并当作JavaScript脚本来执行,如下所示:
在这里插入图片描述
只有像第八关一样,我们将一个属性中的内容采用Unicode编码,才会使得Unicode编码真正发挥作用。例如,我们使用img标签中的onerror属性来触发JavaScript脚本,源代码如下所示:
在这里插入图片描述
结果如下所示:
在这里插入图片描述
从上图可以看出,浏览器成功进行了弹窗。而当我们将onerror本身也作为Unicode编码内容的一部分时(源码如下所示),则不会起到JavaScript脚本应用的效果。
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值