الدرس 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

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

هجوم الحزمة الواحدة (تقنية 2025)

بحث James Kettle في DEF CON 32:

# 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: تقنيات الاستغلال المتقدمة

خذ الاختبار