包括Google Docs在内的许多谷歌产品都有"Send feedback"或"Help Docs improve"的选项,允许用户发送包含截图的反馈来改善产品。该反馈特征部署在谷歌的主网www.google.com,并通过iframe元素集成在其他域名中,在iframe元素可以从feedback.googleusercontent.com 加载弹窗内容。
试想我们使用Google Docs (https://docs.google.com/document) 并提交一个反馈。点击Help--> Send Feedback 后,就可以看到弹出的弹窗加载了文档的截图。Iframe的源(www.google.com) 与Google docs (docs.google.com)是不同的,因此要成功提交该截图必须要进行跨域通信。实际上,Google docs会通过postmessage发送每个像素的RGB值给www.google.com,然后再通过postmessage重定向这些RGB值到其iframe feedback.googleusercontent.com,然后从像素的RGB值渲染图像,并将base64编码的数据URI发送回主iframe。
这一过程完成后,要写一个feedback的描述,并点击发送描述和图像到https://www.google.com。
研究人员Sreeram在消息发送到feedback.googleusercontent.com的过程中发现了一个安全漏洞,攻击者利用该漏洞可以修改frame未任意的外部网站,因此,可以窃取和劫持要上传到谷歌服务的Google Docs截图。
漏洞产生的原因是Google Docs域名缺乏X-Frame-Options header,因此有可能修改消息的目标源(target origin),并利用页面和frame的跨域通信来实现攻击。
该攻击是需要用户交互的,比如点击“send feedback”按钮,漏洞利用可以获取要上传的截图并窃取和发送到恶意站点。攻击者只需要将Google Docs文件嵌入到虚假/恶意网站的iframe就可以劫持feedback弹窗来重定向内容到攻击者控制的域名。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理