Facebook has recently introduced profile picture guard which which provides security against your profile picture and it also prevents security that your profile picture will not get misused.
So here is the Policy of the Profile Picture guard that how it secures profile picture if you use profile picture guard.
As you can see above that it has mentioned that
no one can
1) Download the Photo
2) Send in message
3) share it
But some how i was able to bypass this protection and was able to share the profile picture guard protected photos.
Here is the mind map of my attack, that how i was able to bypass the protection.
This is one of my friend’s profile picture which is protected with facebook profile picture guard
you will notice that there is no share & download option available in the photo so any user can not directly share this profile photo.
but as you can see in the URL bar there is a **fbid** parameter which is having some values.
now fbid contains the value of the id of the profile photo which is protected with profile picture guard.
So comming back to the basics.
facebook graph api works on 3 things
- NODES ( things )
- EDGES ( relation of things )
- FIELDS ( value of things )
in this scenario the api was not validating ( authorising ) the relation between 2 nodes,
now which nodes?
USER & profile picture guard protected photo.
i just generated the share link of my profile picture and replaced the my photo id with victim’s profile id & it has allowed me to share my victim’s profile picture guard protected photo which i was not allowed to.
I have reported to facebook about this issue, but they said that the profile pictures are public & bugs related to the profile picture are not eligible for reward. (SAD PART)
thanks for reading,
i hope you guys will like it.
have a great day.