alert()已死,print()万岁 – 作者:d447059172

image

XSS和alert()函数已经联手有数十年的历史了。想要证明您可以执行任意的JavaScript吗? 一般是弹出一个警告。想以懒惰的方式找到XSS漏洞吗?在所有地方注入alert() payload,看看是否弹出任何内容。

然而,麻烦正在酝酿之中。恶意广告一直在滥用我们心爱的alert,还有iframe标签中的社交访客。谷歌Chrome已经决定,禁止跨域的iframe使用告警功能来解决这个问题。而跨域的iframe经常被故意构建到网站中,也是某些相对高级的XSS攻击的重要组成部分。

一旦Chrome 92在2021年7月20日发布,跨域iframe的XSS漏洞将:

  • 不能再使用基于告警的poc了

  • 使用基于告警的检测技术将会消失

下一步怎么办? 最明显的解决方法是使用prompt或confirm,但不幸的是Chrome的缓解措施会阻止所有对话框。向侦听器触发DNS pingbackOAST-style是另一种潜在的方法,但由于配置需求,不太适合作为PoC。我们还排除了console.log(),因为控制台经常被JavaScript模糊处理器代理或禁用。

这个防护措施相当有趣,针对弹出对话框,跨域阻止使用告警和提示窗口,但正如Yosuke Hasegawa指出,他们忘记了基本的身份验证。这在canary的当前版本中是可行的。不过,它很可能在未来被屏蔽。

我们需要一个alert替代方案:

  • 简单,免设置,易于记忆

  • 高度可见,即使在不可见的iframe中执行

经过几周的深入研究,我们很高兴为您带来…

print()

image

我们现在将继续使用alert,当不涉及iframes。

来源:freebuf.com 2021-07-20 08:06:38 by: d447059172

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论