APP下载

Facebook CDN系统中的档案下载漏洞

消息来源:baojiabao.com 作者: 发布时间:2026-05-17

报价宝综合消息Facebook CDN系统中的档案下载漏洞

这篇Writeup分享的是Facebook CDN系统的档案下载漏洞,Facebook CDN平台中的档名会被以某种加密方法进行编码,当发生请求呼叫或下载时则指向一个加密字串作为代替,作者通过破解了这种加密方法,可以任意修改其中与档名对应的加密串,从而实现CDN系统中档案下载。该漏洞影响Facebook多个公开和内部CDN档案托管平台,以下是相关分享。漏洞说明Facebook平台中被选中下载的档案在被执行某种加密算法之后,会以一个加密字串进行代替。我可以decode这种加密算法并对其生成的加密串进行修改,以指向任意我想下载的档案。目前,这种加密算法广泛应用于Facebook各平台中,考虑到Facebook正在实施修复,在此我就不作过多破解方法透露,待修复完成再做详细讨论。

漏洞复现Facebook平台基于一些内容分发网络(CDN)来实现使用者上传的海量档案储存和分发,这些档案通常包含图片、视讯和文件等等。这里,就拿Facebook 的公开CDN系统 scontent.*.fbcdn.net来说,它代表了以scontent开头的一类CDN系统,它负责托管使用者上传的大量档案。我们可以先来看看这类CDN系统的托管档案样式:

https://scontent.ftun12-1.fna.fbcdn.net/v/t39.2365-6/21276262_1737282336573228_8492096834724954112_n.jpg?_nc_cat=108&oh=4e4c1ebd627f4a10dbbb3dd05a898499&oe=5D665C03

也就是说,通过这个连结可以下载到其中相关的.jpg档案21276262_1737282336573228_8492096834724954112_n.jpg,注意,这个下载连结中,其jpg档名或文件ID(file id)为21276262_1737282336573228_8492096834724954112是一个加密串,另外,“oe” 和 “oh”引数对下载档案形成了一个签名,这两个签名引数会随时间和档案许可权而改变,目的在于防止对CDN系统的未授权破力列举下载档案。

拿上述CDN的下载档案21276262_1737282336573228_8492096834724954112_n.jpg来说,经我测试发现,Facebook移动使用者可以在Facebook服务端下,通过构造包含有指向下载档案加密串21276262_1737282336573228_8492096834724954112的请求,就能从Facebook的CDN系统scontent.ftun12-1.fna.fbcdn.net中下载到对应档案。因为我已成功破解了Facebook的这种文件ID加密方法,所以,我可以尝试修改这个文件ID加密串以指向其它档案(如音视讯文件),实现Facebook CDN系统中的任意托管档案下载。

之后,我把这种方法稍做修改,竟然能成功从Facebook的一些内部(非公开直接访问)CDN系统如interncache-*.fbcdn.net,获取到一些档案,这些档案涉及到了Facebook的部分敏感源代码,以及移动端使用者的APP应用崩溃日志等。其中这些内部档案的相关文件ID资讯可从一些Facebook开源专案的提交内容中去查询,当然,也可以通过对比分析之前不同版本的Facebook移动APP程式来发现。待Facebook完全修复该漏洞之后,我会再对技术细节做详细披露。

漏洞上报程序2019.3.26 漏洞初报

2019.4.15 Facebook承认漏洞

2019.4.16 Facebook着手修复漏洞

2019.4.29 Facebook奖励我12500$美金

相关Facebook CDN漏洞,还可参考《Facebook CDN服务器的XSS漏洞 》。

*参考来源:ysamm,clouds编译,转载请注明来自FreeBuf.COM

2020-01-08 19:52:00

相关文章