一名研究人员凭借他在Google Maps中发现的一个跨站脚本漏洞赚得了总计10000美金的双份赏金。他初次赚得5000美金。但是当Google的补丁无法完全修复该漏洞时,该名研究人员又凭借发现绕过该补丁的方法赚得了第二笔5000美金。
Wix.com公司的应用程序安全主管Zohar Shachar于4月23日向Google报告了该漏洞,不久之后就获得了5000美金的赏金。Google公开披露了该漏洞,在6月7日声称修复了该漏洞。Shachar得到有关该补丁和赏金奖励的通知后数分钟,他说他发现了一个绕过Google Maps补丁的方法。这最终为他赚得了另一笔5000美金。
Shachar表示,最初的漏洞起源于某个Google Maps功能,该功能允许用户创建自己的地图。创建地图后,用户可以数种格式导出该地图。其中一种格式为Keyhole Markup Language(KML),一种类似XML的格式,用于在二维地图中表达地理注释和可视化。
Shachar发现,当该地图导出为KML格式时,服务器响应包含一个CDATA标签。CDATA标签表示该文档的某个特定部分为通用字符数据(而不是非字符数据),并确保该代码不会被浏览器渲染。然而,他发现,通过添加特殊字符,该CDATA标签可被轻松“关闭”。
Shachar表示,具体而言,通过在payload的开头(也就是‘map name’的开头)添加‘]]>’,可以绕过CDATA并添加任意XML内容(这会被渲染为XML),从而导致跨站脚本。
要利用该漏洞,攻击者可以创建一个新的空地图,使用这些特殊字符重命名该地图,并为SVG添加一个XSS payload。SVG(或Scalable Vector Graphics)是一种基于XML的向量图像格式。接着,他们需要将该地图的权限设置成“公开”,允许所有人访问它,将地图导出为KML和复制下载链接。随后,他们可以将该下载链接发送给受害者。一旦目标受害者被诱使点击该链接(借助社会工程学攻击),XSS攻击就发动了。
Shachar报告该漏洞后,Google表示该漏洞已修复。然而,Shachar随后发现了绕过该补丁的方法。Shachar表示,那是因为,为了修复该漏洞,Google似乎添加了一个另外的CDATA标签,意味着攻击者只不过要添加两个CDATA闭合标签而已。
Shachar表示,“我非常惊讶,该绕过方法是如此简单。我迅速地报告了该绕过方法(实际上在查看收件箱后,只用了10分钟,我就报告了该绕过方法),以至于发完邮件后我开始怀疑自己。”
Google不断地扩展其漏洞赏金项目。最近该科技巨头增加了产品滥用范围内的潜在攻击报告在其漏洞赏金项目中的奖励金额,将每份报告的奖励提升至最高13337美金。
来源:freebuf.com 2020-09-10 15:30:32 by: 偶然路过的围观群众
请登录后发表评论
注册