vue 如何防止xss攻击 框架_如何绕过大写过滤器实现XSS攻击

本文讲述了如何在遇到Vue框架中防止XSS攻击的大写过滤器时,通过构造特殊payload,利用大写字母执行JavaScript代码,从而实现XSS攻击。作者详细介绍了利用不同类型的变量获取小写字母,以及如何混淆和缩短payload以绕过长度限制,最终成功加载外部JS脚本,将低危XSS提升至高危级别。
摘要由CSDN通过智能技术生成

f2d24ed96973fba52d784341b71d2c5d.png

虽然我们不是在安全公司工作,但喜欢参加Hackerone上的漏洞悬赏项目,喜欢寻找漏洞。

而最近发现的漏洞让我感觉javascript代码中的注入漏洞的确会让人防不胜防。

我们在目标网站上找到了一个和XSS有关的漏洞,其中网页涉及到某种谷歌分析代码,可通过URL进行XSS攻击。

http://website.com/dir/subdir

以上URL的后半部分会直接出现在javascript代码中:

function("/DIR/SUBDIR",params);

通过使用Burp suite,我尝试在URL末尾添加-alert(1)-来进行攻击,即http://website.com/dir/subdir/"-alert(1)-"

3587ab445836e530f5ffd040826c00af.png

结果浏览器告诉我们找不到函数ALERT(1),看来GET参数会被转换为大写。

然后我们开始测试网站过滤器到底会过滤什么内容,结果发现</script>//. 会受到影响,但是其他敏感字符东西"'[]{ }并不会。

所以,我们需要利用这些白名单字符构建payload。很快我们便想到了jsfuck.com网站,不过它生成的payload虽然可以绕过大写过滤器,但太长了。

38134d9fdcb0e8cef4dc3dc1686e514b.png


同时,需要说明的是,在Hackerone的悬赏项目中,如果只是执行alert(1),那么只能算是一个低级XSS(奖励较低)。我们希望将此漏洞的等级升级为高或严重,这就需要证明漏洞可加载外部JS文件,且在和用户无任何交互的情况下就可执行任意Web操作。

以下是一个用于WordPress的payload,我们希望能往目标注入类似于这个payload的外部脚本,非法更改帐户密码或email。

9b85ae4e01afb0fb1de6ea063e92f0e3.png

而在JsFuck网站中,一个简单的alert(1)会被转换为如下代码:

"-%5B%5D%5B(!%5B%5D%2B%5B%5D)%5B%2B%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B!!%5B%5D%2B!!%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B%2B!!%5B%5D%5D%2B(!!%5B%5D%2B%5B%5D)%5B%2B%5B%5D%5D%5D%5B(%5B%5D%2B%5B%5D%5B(!%5B%5D%2B%5B%5D)%5B%2B%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B!!%5B%5D%2B!!%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B%2B!!%5B%5D%5D%2B(!!%5B%5D%2B%5B%5D)%5B%2B%5B%5D%5D%5D)%5B!!%5B%5D%2B!!%5B%5D%2B!!%5B%5D%5D%2B(!!%5B%5D%2B%5B%5D%5B(!%5B%5D%2B%5B%5D)%5B%2B%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B!!%5B%5D%2B!!%5B%5D%5D%2B(!%5B%5D%2B%5B%5D)%5B%2B!!%5B%5D%5D%2B(!!%5B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值