挖洞经验 | Facebook全平台聊天应用中的用户发送附件泄露漏洞($15,000)
作者:admin | 时间:2019-3-14 21:53:34 | 分类:黑客技术 隐藏侧边栏展开侧边栏
今天分享的这篇writeup,作者在Facebook视频聊天设备Portal的官网中,通过测试其中的客户支持聊天机器人(Support Bot),利用其附件上传功能,发现了一个存在于Facebook 聊天架构中,影响Messenger、Portal和Workplace等Facebook全平台聊天应用,会导致用户在聊天应用中发送的附件泄露,非常严重。
以下是作者的漏洞发现思路:
发现漏洞
2019年1月22日凌晨4点,我苦闷地抽着烟测试漏洞,突然,Facebook视频聊天设备Portal官网 – portal.facebook.com 中新加入的聊天机器人功能映入我的眼帘。
Facebook Portal:Portal是Facebook推出的智能视频聊天和社交功能联系工具,为Facebook的第一款消费类硬件产品,用户开始使用 Portal 聊天时,如果有多个人,Portal 则能够识别到所有人。Facebook 表示,Portal 希望可以创造一种聊天双方在同一个房间面对面的感觉。具体说明可以参考Portal官网 https://portal.facebook.com/
早前,我曾测试过 portal.facebook.com,并没在其中发现任何安全隐患,但是现在当我重新打开这个网站,在账户设置区域,我看到了一个此前没有发现的功能 – 客户支持聊天机器人(Support Bot),如下:
接着,我注意到,在这个Support Bot聊天频道中,可以向其中上传附件,图片、视频和文档等类型文件都能上传有效。所以,我就上传了一张正常图片,同时用Burpsuite对上传操作进行抓包,想看看POST请求中的具体参数,之后,我看到了以下请求包内容:
POST /messaging/send/ HTTP/1.1
Host: www.facebook.com
client=mercury&action_type=ma-type:user-generated-message&body=&ephemeral_ttl_mode=0&has_attachment=true&image_ids[0]=123&message_id=111&offline_threading_id=123
在这个请求包中,包含了一个名为 image_ids[0] 的有意思的参数,它应该表示我上传到Portal聊天机器人(Support Bot)中的那张图片。我就想如果我把这个图片ID换成其他用户的图片ID,是否就能间接访问获取到其他用户的图片了呢!?同理,那其他用户的其它附件(如文档、视频和声频)也应该一样可用此方法间接访问获取到!最终,我经过设置的attacker 和 victim账户进行相互测试,发现了以下几个方面的安全问题:
可用此方法获取到其他用户通过Portal聊天机器人发送的任何附件,这些附件包含图片、文档、视频和音频;
该漏洞影响了所有Facebook的聊天架构应用,涉及Facebook主聊天系统、Messenger、Portal聊天应用和Workplace聊天应用;
我可以在所有Facebook的聊天架构应用中来复现这个漏洞问题;
在Burpsuite的Proxy代理标签中可以通过请求成功复现,但如果发送到Repeater模块中进行重放攻击则会返回一个未知错误。
漏洞利用场景
恶意攻击者利用该漏洞,可以编写脚本工具去暴力枚举其他用户的上传附件ID,如Images IDs, video IDs, files IDs and audio messages IDs。Facebook聊天应用的日均用户可是数百万啊,如果哪个VIP人士类似的图片和音视频附件被攻击者用该漏洞获取,那后果不堪设想,对用户个人隐私来说,也是一个极大的威胁。
PoC视频如下:
之后,我及时把该漏洞上报给了 Facebook 安全团队,他们非常重视,最后奖励了我15,000美金!这也是我上报Facebook漏洞以来收获的最高奖金。
漏洞上报进程
2019.1.22 漏洞初报
2019.2.4 漏洞分类
2019.2.13 漏洞修复
2019.2.13 修复确认
2019.2.13 $15,000赏金发放
经验
尝试时不时地去测试那些你曾经测试过的目标,可从一些新改进、更新的功能中发现问题;
不要相信响应内容,出错也并不意味着没有可能。
*参考来源:medium,clouds编译,转自FreeBuf