- بواسطة x32x01 ||
تخيل إنك دخلت على موقع متجر إلكتروني علشان تشوف تفاصيل طلبك.
فتلاقي رابط الصفحة بالشكل ده:
كل حاجة طبيعية 👌
بتشوف اسمك، عنوانك، تفاصيل الطلب، وحالة الشحنة.
لكن فجأة جات لك فكرة بسيطة 🤔
ماذا لو غيرت الرقم الموجود في الرابط فقط؟
فتقوم بتغييره إلى:
وفجأة تحصل المفاجأة 😳
تلاقي صفحة طلب شخص آخر بالكامل ظهرت قدامك!
تقدر تشوف:
وهي واحدة من أشهر ثغرات تطبيقات الويب (Web Vulnerabilities).
الثغرة بتحصل لما الموقع يعتمد على معرف مباشر (ID) في الرابط للوصول إلى البيانات، من غير ما يتحقق من صلاحية المستخدم.
يعني الموقع ببساطة بيقول: لو الرابط صحيح… اعرض البيانات فورًا
بدل ما يعمل التحقق المهم:
هل هذا المستخدم مسموح له يشوف هذه البيانات؟
ولو الموقع مش بيعمل تحقق من هوية المستخدم، فالمهاجم ممكن ببساطة يغير الرقم في الرابط ويشوف حسابات ناس تانية.
وده مثال بسيط جدًا على ثغرة IDOR.
كل اللي يحتاجه المهاجم:
بعدها يبدأوا بتغيير الرقم وتجربة الوصول إلى بيانات مختلفة.
مثال باستخدام أداة curl لفحص الرابط:
لو ظهرت بيانات مستخدم آخر بدون تسجيل دخول مناسب…
فغالبًا الموقع فيه ثغرة IDOR.
علشان كده الحل بسيط لكنه مهم جدًا.
مثال بسيط بلغة PHP:
الكود ده يمنع المستخدم من الوصول لأي طلب مش تابع له.
ممكن استخدام معرفات عشوائية مثل:
وده يقلل احتمالية اكتشاف الروابط.
فيتم بناء النظام بالشكل التالي:
والسيرفر يعرض الطلب مباشرة…
بدون التأكد إذا كان المستخدم صاحب الطلب أم لا.
لأنها قد تؤدي إلى تسريب:
الخطير فيها إنها لا تحتاج أدوات معقدة…
فقط تغيير رقم في الرابط قد يكشف بيانات مستخدمين آخرين بالكامل.
علشان كده أي مطور ويب لازم يهتم دائمًا بـ:
فتلاقي رابط الصفحة بالشكل ده:
site.com/order/48291كل حاجة طبيعية 👌
بتشوف اسمك، عنوانك، تفاصيل الطلب، وحالة الشحنة.
لكن فجأة جات لك فكرة بسيطة 🤔
ماذا لو غيرت الرقم الموجود في الرابط فقط؟
فتقوم بتغييره إلى:
site.com/order/48292وفجأة تحصل المفاجأة 😳
تلاقي صفحة طلب شخص آخر بالكامل ظهرت قدامك!
تقدر تشوف:
- اسم العميل
- عنوانه
- رقم الهاتف
- تفاصيل الطلب
- أحيانًا حتى طريقة الدفع
ما هي ثغرة IDOR في الأمن السيبراني؟ 🔎
الثغرة دي اسمها: Insecure Direct Object Reference - IDORوهي واحدة من أشهر ثغرات تطبيقات الويب (Web Vulnerabilities).
الثغرة بتحصل لما الموقع يعتمد على معرف مباشر (ID) في الرابط للوصول إلى البيانات، من غير ما يتحقق من صلاحية المستخدم.
يعني الموقع ببساطة بيقول: لو الرابط صحيح… اعرض البيانات فورًا
بدل ما يعمل التحقق المهم:
هل هذا المستخدم مسموح له يشوف هذه البيانات؟
مثال بسيط على ثغرة IDOR 🧠
لو كان الموقع بيستخدم روابط بالشكل ده: Code:
site.com/user/105
site.com/user/106
site.com/user/107 وده مثال بسيط جدًا على ثغرة IDOR.
لماذا تعتبر ثغرة IDOR خطيرة جدًا؟ 🚨
خطورة الثغرة دي إنها لا تحتاج اختراق معقد ولا أدوات هاكر متقدمة.كل اللي يحتاجه المهاجم:
1️⃣ تغيير الرقم في الرابط
2️⃣ تجربة أرقام مختلفة
3️⃣ الوصول إلى بيانات مستخدمين آخرين
وده ممكن يؤدي إلى كشف معلومات حساسة جدًا مثل:2️⃣ تجربة أرقام مختلفة
3️⃣ الوصول إلى بيانات مستخدمين آخرين
- البيانات الشخصية
- عناوين المنازل
- تفاصيل الطلبات
- الفواتير
- معلومات الحسابات
- ملفات خاصة
كيف يكتشف مختصو الأمن السيبراني ثغرة IDOR؟ 🧑💻
خبراء اختبار الاختراق (Penetration Testing) عادة يبحثوا عن صفحات تحتوي على ID في الرابط مثل: Code:
/user/100
/order/500
/invoice/321
/download/55 مثال باستخدام أداة curl لفحص الرابط:
Code:
curl https://site.com/order/48292 فغالبًا الموقع فيه ثغرة IDOR.
كيف يمكن للمطورين منع ثغرة IDOR؟ 🛡️
المشكلة الأساسية في IDOR هي غياب التحقق من الصلاحيات (Authorization Check).علشان كده الحل بسيط لكنه مهم جدًا.
التحقق من هوية المستخدم
لازم السيرفر يتأكد إن المستخدم الحالي صاحب البيانات فعلاً.مثال بسيط بلغة PHP:
PHP:
if($order->user_id != $current_user_id){
die("Access Denied");
} استخدام معرفات عشوائية بدل الأرقام
بدل استخدام IDs متسلسلة مثل: Code:
/order/100
/order/101 /order/a8f92k3fوده يقلل احتمالية اكتشاف الروابط.
استخدام Access Control بشكل صحيح
أي نظام ويب لازم يحتوي على:- Authentication (تسجيل الدخول)
- Authorization (التحقق من الصلاحيات)
لماذا تظهر ثغرة IDOR في كثير من المواقع؟ 🤔
السبب إن بعض المطورين بيركزوا على وظائف الموقع وينسوا التحقق الأمني.فيتم بناء النظام بالشكل التالي:
GET /order/48291والسيرفر يعرض الطلب مباشرة…
بدون التأكد إذا كان المستخدم صاحب الطلب أم لا.
ثغرة IDOR في برامج Bug Bounty 💰
الكثير من الشركات الكبيرة دفعت آلاف الدولارات كمكافآت Bug Bounty بسبب اكتشاف ثغرة IDOR فقط.لأنها قد تؤدي إلى تسريب:
- بيانات العملاء
- معلومات حساسة
- ملفات خاصة
خلاصة البوست 📌
ثغرة IDOR (Insecure Direct Object Reference) تعتبر من أخطر وأشهر ثغرات تطبيقات الويب.الخطير فيها إنها لا تحتاج أدوات معقدة…
فقط تغيير رقم في الرابط قد يكشف بيانات مستخدمين آخرين بالكامل.
علشان كده أي مطور ويب لازم يهتم دائمًا بـ:
- التحقق من صلاحيات المستخدم
- حماية الروابط
- تطبيق أنظمة Access Control بشكل صحيح