Google动态邮件功能出现XSS漏洞,可让黑客透过Gmail发动攻击

安全专家发现Gmail动态邮件功能出现跨站攻击(cross-site scripting , XSS)漏洞 , 能让攻击者透过此类电子邮件发动攻击 , 所幸google已在上个月修补Gmail这项漏洞 。
这个漏洞是由安全公司Securitum在动态邮件功能AMP4Email发现 。AMP4Email是Google今年初发表了动态Gmail服务 , 可在电子邮件加入动态html属性 , 让使用者可直接在邮件中回复活动邀约、填写问卷或浏览目录 。例如有人在GoogleDocs中加注评论时提及某位用户时 , 该用户即可收到更新的Gmail邮件看到该评论 , 而直接在邮件中回复 。
为了防止AMP4Email遭XSS等攻击行为 , Google设计了验证机制 , 即一组允许放入动态邮件的HTML标签和属性的白名单 。不过研究人员发现AMP4Email仍然出现设计漏洞 。他们发现id属性不在禁止标签名单上 , 而可能让黑客用以建立HTML元件 , 导致名为DOM Clobbering的攻击 。

Google动态邮件功能出现XSS漏洞,可让黑客透过Gmail发动攻击

文章插图
 
简单而言 , 这类手法会将DOM元素的id属性加为文件的属性或网页的全局变量 , 导致原有文件属性或全局变量被覆盖 , 或者劫持某些变量属性 , 而造成XSS攻击 。
DOM Clobbering是浏览器一项旧有功能 , 迄今仍对许多应用程式带来麻烦 。Securitum首席安全研究员Micha?Bentkowski举例 , 在建立HTML元素且希望从JAVAScript建立参照时 , 一般是用document.getElementById('username')或document.querySelector('#username')等函数 , 但是并不是唯一方法 。也可以利用全局window物件属性 , 因此window.username在此也等于document.getElementById('username')! 。这种方法即为DOM Cloberring , 碰上应用程式根据某些全局变量(如if(window.isAdmin){…})进行决策时 , 就产生了漏洞 。
在AMP4Email中 , 某些id属性的值是被限制的 。但研究人员发现在AMP_MODE下 , 如果函式尝试下载JavaScript档案时会发生404错误 , 致使后续出现的URL出现「未定义」的属性 , 而负责检查未定义元素的程序码会去检查AMP_MODE.test和window.testLocation的值是否为真 。在概念验证攻击中 , 撰写程序造成window.testLocation overload即可控制URL 。
虽然在真实情境下 , AMP中的属性安全政策(CSP)会阻止攻击100%执行 , 但是研究人员8月间在Google的抓漏大赛中发现这项漏洞并通报Google 。9月获得Google回复是「很棒的bug」 。Google于10月中旬回复已修补漏洞 。
【Google动态邮件功能出现XSS漏洞,可让黑客透过Gmail发动攻击】资料来源:iThome Security




    推荐阅读