في يوليو 2015، أثناء تحليلي لنظام الحماية في فيسبوك، اكتشفت ثغرة أمنية خطيرة تسمح بتجاوز القيود المفروضة على إضافة الأصدقاء إلى المجموعات ومشاركة المحتوى. عادةً، يقوم فيسبوك بحظر المستخدمين بعد إضافة ما بين 600 إلى 1200 صديق إلى مجموعة باستخدام سكربتات أو أدوات، أو بعد مشاركة المحتوى في أكثر من 7 مجموعات.
من خلال تحليل دقيق، وجدت أن بعض النطاقات الفرعية لـ *.facebook.com تفتقر إلى ضوابط تحقق مناسبة، مما يتيح تجاوز هذه القيود. تمكنت من إنشاء طلبات XHR مخصصة لإضافة الأعضاء إلى المجموعات دون أن يتم اكتشافها من قبل نظام الحماية.
بعد توثيق الثغرة وتقديم دليل على إمكانية استغلالها، قمت بالإبلاغ عنها لفريق أمان فيسبوك. تم تأكيد الثغرة، وحصلت على مكافأة مالية قدرها 500 دولار تقديرًا لجهودي في تحسين أمان المنصة.
Facebook Exploit Report
Facebook Exploit July 2015: Bypass Protection/Block System
Bypass Facebook Protection/Block System
Facebook's protection system is designed to prevent spamming and scamming activities. However, certain limitations can be bypassed, allowing users to exceed restrictions on actions such as adding friends to groups or sharing content.
Examples:
- Group Member Limits: Users are typically blocked after adding 600–1200 friends to a group using scripts or tools.
- Sharing Limits: Users are restricted to sharing content to a maximum of 7 groups before being blocked.
Through research, it was discovered that subdomains (*.facebook.com) lack proper validation controls, enabling bypass of these restrictions.
Bypassing Group Member Addition Limits:
Create an XHR request to add users to a group using a specific endpoint. The exact URL and parameters are sensitive and have been redacted for security purposes.
Example Code:
var uid = "778218884"; // Example user ID, loop for all friends
var Page = new XMLHttpRequest();
var PageURL = "[Redacted for security purposes]";
var PageParams = "fb_dtsg=AQHR-09syXqn&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&addees%5B" + uid + "%5D=" + uid + "&group_id=824691297597477";
Page.open("POST", PageURL, true);
Page.onreadystatechange = function() {
if (Page.readyState == 4 && Page.status == 200) {
Page.close;
}
};
Page.send(PageParams);
This code allows adding 8 or more friends per request, enabling faster group additions beyond the standard limits.
- Reported: July 2015