xss绕过尖括号和双括号_从Cookie中的Self-XSS到高危XSS

本文介绍了作者在Synack平台上发现并利用XSS漏洞的过程,面对括号过滤的限制,通过研究找到绕过方法,成功提升漏洞价值。最初的272美元奖励在证明DOM访问后增加到332美元。此外,作者还利用Self-XSS结合jQuery在限制字符数的情况下,构造短payload,通过托管外部js文件,实现了高危XSS攻击,最终获得616美元的奖励。
摘要由CSDN通过智能技术生成

5a6e0df7099c50db023aca4b2b4becab.png

上个月我到Synack的私有漏洞悬赏平台进行挖洞,发现在他们的一个网页中存在反射型XSS漏洞。由于Synack漏洞悬赏计划的私密性,我不会在这篇文章中提到测试目标,但是我将说明我是如何克服所遇到的许多不同的限制,最终挖到一个高危漏洞的。最初我的发现的XSS漏洞得到了272美元奖励,因为我无法证明我能访问文档对象模型,也就是DOM。而无法访问DOM的原因是括号字符被过滤,因此无法执行有效的payload,例如:

34a77fd942fb94c1b5d71a8654c5cd2f.png

通常来说你必须像下图那样得到domain。

e1290c43680c5ff90c9872a98defc0d7.png

ba99987d33a2e022ae107d572edd2786.png

由于括号被过滤,我不得不用反引号来代替。但是,当我再次执行时,你是获取不到domain的,如下图。

fa9449f7b6a151a0faedb8c0177a4091.png

综上所述,最初我得到了272美元的奖励。但同时我被告知,如果我能对dom进行访问,那我会得到一个更高的奖励,所以我当然要继续挑战下去。我和Brutelogic(Brute)讨论了一下,问他是否知道绕过这个限制的技术,他告诉我可以去看一下他的XSS备忘表。而在阅读文档时,我看到了这样一个payload:

da5e7729ff1a7ce11a2d7c1920c1128f.png

这个payload成功帮我访问到了domain。于是我重新提交了漏洞,证明了我能对dom进行访问,最后获得了额外的60美元奖励。不过,我还要继续。

在早些时候,我在漏洞奖励范围内的另一个子域上发现了一个Self-XSS。这个XSS是将被ba se64编码的payload放入会话cookie中的某个参数而产生的。通常,基于cookie的XSS漏洞是很难利用的,除非攻击者可以设置cookie值。但幸运的是,我已经知道了上面的XSS漏洞。

除此之外,我还有另外一个限制,那就是我的payload不能有太多字符,否则会失败。因此我知道,要使这种XSS攻击成功,我必须从外部引入js文件,否则payload太长就无法生效。但是,我注意到目标页面使用了jQuery,利用它我就可以嵌入一个足够短的payload。下面是我使用的payload:

20605a609fb7397a1cb6c42ef8cb4b1b.png

现在,我需要做的就是将我编写前端js文件托管在公网上,它的主要功能是重设cookie中某个参数的值,具体代码如下:

dfe1f8f5deaa9f5122256cde033b1e0a.png

上面图片中的代码用标题文本替换了网页,标题文本上写着“单击下面的按钮以继续”。当受害者单击按钮时,它会将cookie中的某个值设置为以下被ba se64编码的字符串:

709ca0f9cb327345bbe569e4c9551596.png

明文如下:

ab36c3f260f78b74c92b86fdf0fc1882.png

总之,我认为这是一个非常有趣的漏洞利用链,我遇到了很多限制,但最后还是绕过了全部限制。最后,我从这个Self-XSS得到了616美元的奖励,因为我把这个Self-XSS变成了一个高危XSS。正是因为一开始的272美元+60美元漏洞,使得这个漏洞的实际利用成为可能。

来源:从Cookie中的Self-XSS到高危XSS|NOSEC安全讯息平台 - NOSEC.ORG

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值