
- بواسطة 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
المعيار | SSTI | SSRF | CSRF |
---|---|---|---|
التعريف | حقن كود في قوالب السيرفر لتنفيذ أوامر خبيثة. | إجبار السيرفر على إرسال طلبات غير مصرح بها. | إجبار المستخدم على تنفيذ أوامر غير مقصودة. |
الهدف | تنفيذ كود أو تسريب بيانات على السيرفر. | الوصول لموارد داخلية/خارجية غير مصرح بها. | استغلال جلسة المستخدم لتنفيذ أوامر. |
التأثير | تسريب بيانات أو السيطرة الكاملة على السيرفر. | اختراق الشبكة الداخلية أو سرقة بيانات. | تغيير إعدادات المستخدم أو سرقة بياناته. |
النطاق | تطبيقات تستخدم قوالب ديناميكية غير منقاة. | تطبيقات تسمح بإدخال روابط URL. | تطبيقات بدون حماية ضد طلبات المستعرض. |
نصايح للحماية من SSTI وSSRF وCSRF
عشان تحمي تطبيقاتك من الثغرات دي:- لـ SSTI:
- نظّف المدخلات (Input Sanitization): امنع حقن تعليمات القوالب باستخدام مكتبات زي Jinja2 مع
autoescape
. - استخدم قوالب آمنة: تجنّب تقييم تعليمات المستخدم مباشرة في القوالب.
- قلّل الصلاحيات: شغّل التطبيق بصلاحيات محدودة مش Root.
- نظّف المدخلات (Input Sanitization): امنع حقن تعليمات القوالب باستخدام مكتبات زي Jinja2 مع
- لـ 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
كل أسبوع! 

التعديل الأخير: