الدرس 13 من 24

تقنيات الاستغلال المتقدمة

ثغرات منطق الأعمال

3 دقيقة للقراءة

ثغرات منطق الأعمال تستغل عيوباً في سير عمل التطبيق، وليس ثغرات الكود. غالباً تُفقد من الماسحات الآلية وتعطي مكافآت عالية.

ما يجعل ثغرات منطق الأعمال مختلفة

الثغرات التقليديةثغرات منطق الأعمال
تستغل ثغرات الكودتستغل عيوب تصميم العملية
قابلة للكشف بالماسحاتتتطلب اختباراً يدوياً
استغلال تقنيفهم سياق الأعمال
غالباً موثقة (OWASP)فريدة لكل تطبيق

الفئات الشائعة

التلاعب بالأسعار

# تدفق التجارة الإلكترونية
1. أضف عنصراً للسلة (السعر: 100 دولار)
2. اعترض طلب الدفع
3. عدّل: {"price": 1, "quantity": 1}
4. تحقق إذا كان الخادم يتحقق من السعر

# إساءة استخدام الكوبون/الخصم
POST /apply-coupon
{"code": "SAVE50", "quantity": 100}  # تطبيق الكوبون 100 مرة؟

# ارتباك العملة
# إذا 100 دولار = 90 يورو
# ادفع 90 يورو، احصل على رصيد 100 دولار؟

تجاوز سير العمل

# تخطي خطوات التحقق
1. عادي: تسجيل → التحقق من البريد → الوصول
2. هجوم: تسجيل → القفز مباشرة للوصول

# اختبر بـ:
# - الوصول المباشر لـ URLs المخصصة لمراحل لاحقة
# - تعديل معاملات الحالة
# - إزالة/تغيير معرفات الخطوات

استيلاء الحساب عبر المنطق

# إساءة استخدام إعادة تعيين كلمة المرور
1. اطلب إعادة تعيين لـ victim@example.com
2. اطلب إعادة تعيين لـ attacker@example.com
3. التقط رمز المهاجم
4. عدّل الرمز لاستهداف حساب الضحية

# ربط/إلغاء ربط الحسابات
1. اربط حساب المهاجم الاجتماعي بملف الضحية
2. استخدم تسجيل الدخول الاجتماعي كالضحية

حالات السباق

عندما التوقيت أهم من المنطق:

# الهجوم
# إذا: تحقق من الرصيد → معالجة الدفع → خصم الرصيد
# إذن: أرسل طلبات متزامنة قبل خصم الرصيد

# اسحب 100 دولار مرتين من حساب 100 دولار
# كلا التحققين يمران (الرصيد=100)
# كلا السحبين يُعالجان
# النتيجة: رصيد -100 دولار (إذا لا تحقق نهائي)

اختبار حالات السباق

# استخدام Turbo Intruder (إضافة Burp)
# أرسل 20+ طلب متطابق متزامناً

# استخدام curl بالتوازي
for i in {1..20}; do
  curl -X POST "https://example.com/withdraw" \
    -d "amount=100" \
    -H "Cookie: session=xxx" &
done
wait

# الأهداف الرئيسية:
# - عمليات الرصيد
# - استرداد الكوبونات
# - أنظمة التصويت/الإعجاب
# - دفع المخزون

هجوم الحزمة الواحدة

بحث James Kettle في DEF CON 31 (2023):

# HTTP/2 يسمح بطلبات متعددة في حزمة واحدة
# الخادم يعالجها متزامنة فعلاً
# لا تباين في توقيت الشبكة

# Burp Suite: "Send group in parallel (single-packet)"
# فعال حتى مع نوافذ سباق أقل من ميلي ثانية

تجاوز الحدود

التحايل على القيود:

# حدود المعدل
# جرب: IP مختلف، User-Agent، تنويعات الحالة
# api/v1/send-sms مقابل API/V1/SEND-SMS

# حدود التحميل/الاستخدام
# تحقق إذا كانت الحدود من جانب العميل
# عدّل الجلسة لإعادة تعيين العداد
# أنشئ جلسة جديدة في منتصف الاستخدام

# حدود الطبقة المجانية
# تحقق إذا كانت الميزات المدفوعة متاحة عبر API المباشر

أمثلة من العالم الحقيقي

الشركةالثغرةالمكافأة
Shopifyكمية سلبية في الدفع15,000 دولار
Uberرحلات مجانية عبر إساءة الإحالة10,000 دولار
PayPalاستغلال تقريب العملة8,000 دولار
HackerOneالتلاعب بلوحة الصدارة5,000 دولار

منهجية الاختبار

  1. ارسم تدفق الأعمال: افهم ما يفترض أن يفعله التطبيق
  2. حدد الافتراضات: ما الذي يفترض المطور أن المستخدمين سيفعلونه؟
  3. اكسر الافتراضات: افعل غير المتوقع
  4. اختبر الحدود: أرقام سلبية، صفر، MAX_INT
  5. اختبر التوقيت: هل يمكنك فعل X قبل اكتمال Y؟

قائمة مراجعة الاستغلال

  • هل يمكنك تعديل الأسعار/المبالغ في الطلبات؟
  • هل يمكنك تخطي الخطوات المطلوبة؟
  • هل يمكنك إعادة استخدام الرموز/الأكواد؟
  • ماذا يحدث مع القيم السلبية؟
  • هل هناك نوافذ سباق في العمليات متعددة الخطوات؟
  • هل يمكن للحسابات المجانية الوصول للميزات المدفوعة؟

نصيحة احترافية: فكر كمحتال، وليس كهاكر. ماذا سيفعل مستخدم خبيث يحاول سرقة المال؟

في الدرس التالي، سنستكشف رفع الملفات وهجمات إلغاء التسلسل. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 4: تقنيات الاستغلال المتقدمة

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.