SSTI vs SSRF vs CSRF: ثغرات الويب والحماية

x32x01
  • بواسطة x32x01 ||

مقارنة بين SSTI وSSRF وCSRF: ثغرات تطبيقات الويب الشائعة 🛡️

في عالم الأمن السيبراني، ثغرات SSTI (Server-Side Template Injection)، SSRF (Server-Side Request Forgery)، وCSRF (Cross-Site Request Forgery) من أخطر الثغرات اللي بتواجه تطبيقات الويب. البوست ده هيشرح كل ثغرة بالتفصيل، مع أمثلة عملية، والفرق بينهم، ونصايح للحماية. 🚀

1. SSTI (Server-Side Template Injection) 🤖

SSTI هي ثغرة تحصل لما المهاجم يقدر يحقن كود أو سكريبت في قالب (Template) بيتشغل على السيرفر. الثغرة دي بتسمح بتنفيذ أوامر خبيثة أو الوصول لبيانات حساسة.

إزاي بتحصل؟​

  • التطبيق بيستخدم قوالب (زي Jinja2 أو Twig) لعرض بيانات المستخدم دون تنقية (Sanitization) كافية.
  • المهاجم بيحقن تعليمات قالب خبيثة في مدخلات المستخدم.
  • مثال: لو التطبيق بيعرض اسم المستخدم في قالب زي {{user.name}}، المهاجم ممكن يحقن {{user.sensitiveData}} عشان يسرّب بيانات.

مثال عملي​

  • رابط التطبيق:
    Code:
    example.com/image?user={{user.name}}
  • الهجوم: المهاجم بيدخّل
    Code:
    {{user.sensitiveData}}
    أو
    Code:
    {{7*7}}
    لاختبار الثغرة.
  • النتيجة: لو التطبيق عرض 49 أو بيانات حساسة (زي كلمة السر)، يبقى فيه ثغرة SSTI.
  • تأثير أخطر: تنفيذ أوامر مثل
    Code:
    {{os.system('whoami')}}
    لتشغيل أوامر على السيرفر.

الآثار السلبية​

  • تسريب بيانات حساسة (زي كلمات السر أو مفاتيح API).
  • تنفيذ كود خبيث على السيرفر (زي فتح reverse shell).
  • تعطيل التطبيق أو السيطرة الكاملة على السيرفر.

2. SSRF (Server-Side Request Forgery) 🌐

SSRF هي ثغرة بتخلّي المهاجم يجبر السيرفر على إرسال طلبات شبكة غير مصرح بها، سواء لموارد داخلية (زي localhost) أو خارجية.

إزاي بتحصل؟​

  • التطبيق بيسمح للمستخدم بإدخال روابط URL (زي رابط صورة أو API) بدون التحقق منها.
  • المهاجم بيستغل ده عشان يخلّي السيرفر يبعت طلبات لموارد غير مسموح بيها.
  • مثال: لو التطبيق بيجيب صورة من
    Code:
    http://example.com/fetch?url=EXTERNAL_URL
    ، المهاجم بيدخّل
    Code:
    http://localhost/admin
    .

مثال عملي​

  • رابط التطبيق:
    Code:
    example.com/download?url=http://external.com
  • الهجوم: المهاجم بيدخّل
    Code:
    http://localhost:8080/admin
    أو
    Code:
    http://10.0.0.1
    .
  • النتيجة: السيرفر بيبعت طلب للمورد الداخلي، فيسمح للمهاجم بالوصول للوحة إدارية أو بيانات حساسة.

الآثار السلبية​

  • الوصول لموارد الشبكة الداخلية (زي قواعد بيانات أو سيرفرات إدارية).
  • تنفيذ هجمات إضافية زي Denial of Service (DoS).
  • تسريب بيانات حساسة أو اختراق الشبكة الداخلية.

3. CSRF (Cross-Site Request Forgery) 🔗

CSRF هي ثغرة بتخلّي المهاجم يجبر المستخدم على تنفيذ أوامر غير مقصودة على تطبيق ويب ليه فيه جلسة نشطة (يعني مسجّل دخوله).

إزاي بتحصل؟​

  • المهاجم بيخدّع المستخدم عشان ينقر على رابط أو يزور صفحة خبيثة.
  • الرابط أو الصفحة بيبعت طلبات تلقائية (زي POST أو GET) باستخدام بيانات جلسة المستخدم.
  • مثال: تغيير كلمة سر المستخدم بدون علمه لو كان مسجّل دخوله.

مثال عملي​

  • رابط التطبيق:
    Code:
    example.com/changePassword?newpass=123
  • الهجوم: المهاجم بيعمل صفحة خبيثة فيها رابط أو نموذج زي:
    Code:
    <form action="http://example.com/changePassword" method="POST">
      <input type="hidden" name="newpass" value="hacked123">
      </form>
  • النتيجة: لو المستخدم زار الصفحة وهو مسجّل دخوله، كلمة السربيتغيّر تلقائيًا بدون علمه.

الآثار السلبية​

  • تنفيذ أوامر غير مصرح بها (زي تغيير كلمة السر أو تحويل أموال).
  • سرقة بيانات المستخدم أو تعديل إعدادات حسابه.
  • إساءة استخدام صلاحيات المستخدم في التطبيق.

الفرق بين SSTI وSSRF وCSRF ⚖️

المعيارSSTISSRFCSRF
التعريفحقن كود في قوالب السيرفر لتنفيذ أوامر خبيثة.إجبار السيرفر على إرسال طلبات غير مصرح بها.إجبار المستخدم على تنفيذ أوامر غير مقصودة.
الهدفتنفيذ كود أو تسريب بيانات على السيرفر.الوصول لموارد داخلية/خارجية غير مصرح بها.استغلال جلسة المستخدم لتنفيذ أوامر.
التأثيرتسريب بيانات أو السيطرة الكاملة على السيرفر.اختراق الشبكة الداخلية أو سرقة بيانات.تغيير إعدادات المستخدم أو سرقة بياناته.
النطاقتطبيقات تستخدم قوالب ديناميكية غير منقاة.تطبيقات تسمح بإدخال روابط URL.تطبيقات بدون حماية ضد طلبات المستعرض.

نصايح للحماية من SSTI وSSRF وCSRF 🔒

عشان تحمي تطبيقاتك من الثغرات دي:
  • لـ SSTI:
    • نظّف المدخلات (Input Sanitization): امنع حقن تعليمات القوالب باستخدام مكتبات زي Jinja2 مع autoescape.
    • استخدم قوالب آمنة: تجنّب تقييم تعليمات المستخدم مباشرة في القوالب.
    • قلّل الصلاحيات: شغّل التطبيق بصلاحيات محدودة مش Root.
  • لـ SSRF:
    • تحقق من الـ URLs: استخدم قائمة بيضاء (Whitelist) للموارد المسموح بيها.
    • امنع الطلبات الداخلية: حظر عناوين زي localhost أو 10.0.0.0/8.
    • استخدم WAF: زي Cloudflare أو AWS WAF لتصفية الطلبات.
  • لـ CSRF:
    • استخدم رموز CSRF: أضف رمزًا عشوائيًا (Token) لكل طلب POST أو حساس.
    • تحقق من رأس الطلب: تأكد إن الطلب جاي من نفس الموقع (Same-Origin Policy).
    • استخدم رؤوس أمان: زي SameSite لملفات تعريف الارتباط (Cookies).
  • نصايح عامة:
    • حدّث التطبيقات: ركّب آخر تحديثات الأمان لسد الثغرات.
    • راقب السجلات: استخدم أدوات زي Splunk أو ELK Stack لرصد محاولات الهجوم.
    • اختبر تطبيقاتك: استخدم أدوات زي Burp Suite أو OWASP ZAP.
    • للهكرز الأخلاقيين: جرب الثغرات في بيئات معزولة زي Hack The Box أو TryHackMe.

خلّصنا.. ابدأ رحلتك في الأمن السيبراني! 🚀

SSTI، SSRF، وCSRF من أخطر ثغرات تطبيقات الويب، وكل واحدة ليها تأثيرها الخاص. لو عايز تبقى هاكر أخلاقي، اتعلم إزاي تكتشف وتحمي من الثغرات دي في بيئة آمنة زي Kali Linux. تابع منتديات اكتب كود لشروحات جديدة عن Cybersecurity وPenetration Testing كل أسبوع! 😊 لو استفدت، شارك البوست مع أصحابك، ولو عندك أسئلة، اكتبها في التعليقات! 🌟
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
775
x32x01
x32x01
x32x01
الردود
0
المشاهدات
644
x32x01
x32x01
x32x01
الردود
0
المشاهدات
32
x32x01
x32x01
x32x01
الردود
0
المشاهدات
755
x32x01
x32x01
x32x01
الردود
1
المشاهدات
608
x32x01
x32x01
x32x01
الردود
0
المشاهدات
790
x32x01
x32x01
x32x01
الردود
0
المشاهدات
27
x32x01
x32x01
x32x01
الردود
0
المشاهدات
531
x32x01
x32x01
x32x01
الردود
0
المشاهدات
667
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
648
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,832
المشاركات
2,028
أعضاء أكتب كود
462
أخر عضو
abdelhalimhafez
عودة
أعلى