原文:
https://ysamm.com/?p=606
描述
这个漏洞可以让攻击者下载以前由员工或普通Facebook用户上传的文件。该漏洞允许攻击者从CDN内容{*}.fna. fbcn.net下载文件,也可以从内部CDN,如interncache- cln.fbcn.net下载文件,普通用户即使使用有效的文件URL(指向本地ip)也无法访问这些文件。
通过指定一个表示文件id (HANDLE)的加密字符串来选择要下载的文件。我之前破解了加密算法(更多细节将在未来的文章中提供),这使我更容易下载用户文件,如privacy_changed/delete 照片,只知道一个旧的URL。
这个bug和这个bug(https://ysamm.com/?p=404)是一样的,它允许我下载内部文件,比如部分源代码,粉碎Facebook移动用户的日志文件。
影响
这个漏洞允许攻击者为用户上传的内容(照片/视频/附件)重新生成一个有效的URL签名,这些内容不再可用或其隐私已被更改。这还可以让他在知道之前的URL或HANDLE(由加密的文件id组成)后,看到内部cdn中的员工上传。
复现的步骤
开始准备:
\= = =
1)访问 https://www.facebook.com/collabsmanager/ start/并注册(你的页面应该符合标准,所以你应该绕过这个或使用一个已经登录的页面)
2)申请通过后,登录 https://www.facebook.com/collabsmanager/ ,点击页面右上角的“登录”。您应该被重定向到一个类似的URL: https://business.facebook.com/collabsmanager/creator/creator_portfolio/{ID}/
步骤:
\= = =
1)启动BurpSuite等代理来重复请求。
2)点击“Introduction”部分中的“Edit”
3)点击“添加视频”上传“视频”
4)上传完成后,点击“删除”,删除上传的视频
5)现在如果你去BurpSuite的历史,你应该有3个POST请求按以下顺序发送到这些url:
https://vupload-edge.facebook.com/ajax/video/upload/requests/start/
https://vupload-edge.facebook.com/ajax/video/upload/requests/receive/
https://business.facebook.com/branded_content/creator_profile/pitch_deck_video/async/save/
6)将请求体中的“file_extension”参数改为“jpg”后,重复请求https://vupload-edge.facebook.com/ajax/video/upload/requests/start/
您应该获得一个video_id类似于XXXXXXXX
7)修改参数“video_id”为XXXXXXX后,重新发送请求到 https://vupload-edge.facebook.com/ajax/video/upload/requests/receive/
并且将参数“fbuploader_video_file_chunk”更改为不同的值,如下所示:
你应该有这样一个值1:dW5kZWZpbmVk:application/octet-stream:GBapFAFK2bAstIUBAAAAAACthEIbbj07AACa:e:1568148336:ARa5BNCPUwoIKBVqyao
这个字符串中有趣的部分是GBapFAFK2bAstIUBAAAAAACthEIbbj07AACa。这就是我上面提到的HANDLE。它指的是上传到你的CDN的文件。现在,我们应该将这个句柄更改为指向我们想要下载的文件的任何其他句柄。出于演示目的,我将使用这个句柄GFxcvkCRANjMRgABANB4MEoAAAAAbnsvAAAB,它指向一个内部文件(崩溃日志):
最终的新值应该是1:dW5kZWZpbmVk:application/octet-stream:GFxcvkCRANjMRgABANB4MEoAAAAAbnsvAAAB:e:1568148336:ARa5BNCPUwoIKBVqyao(当然这个值在不同电脑操作是不同的)。在响应中,我们应该获得" start_offset "和" end_offset "值。(跟这两个值无关,但表示上传成功)
8)将“video_id”改为“XXXXXXX”后,重放请求到https://business.facebook.com/branded_content/creator_profile/pitch_deck_video/async/save/
9)访问 https://business.facebook.com/collabsmanager/creator/creator_portfolio/{ID}/,你会发现一个坏了的视频播放器(因为内部文件不是视频)。如果你检查source标签中的" src "属性中的值,你会发现一个指向scontent.*.fbcdn.net域中的文件的URL。内部文件被复制到在公共CDN中可访问的另一个文件。
译者:
太强了,那这样是不是其实不用破解算法,直接调用加密就行
本文迁移自知识星球“火线Zone”