- بواسطة x32x01 ||
لو بتتعلم اختبار الاختراق أو أمن تطبيقات الويب، فـ ثغرات الحقن المتقدمة من المواضيع المهمة اللي لازم تفهم فكرتها كويس، لأنها ممكن تتطور من مجرد كشف معلومات إلى تأثير أكبر على الخادم حسب التقنية وطريقة إعداد التطبيق.
في الفيديو ده هناخد جولة عملية في 3 أنواع مهمة:
المشكلة إن بعض محركات الـ Template بتسمح بعمليات تتجاوز مجرد عرض النص، وبالتالي لو التطبيق متكوّن بشكل غير آمن، ممكن الثغرة تؤدي إلى:
الفكرة ممكن تكون مفيدة جدًا في المواقع اللي بتحتاج تضمين أجزاء مشتركة، زي:
في بعض إعدادات السيرفر، وجود توجيهات خطيرة مثل
لذلك عند اختبار SSI، مهم تفهم:
المشكلة الأمنية ممكن تظهر لما التطبيق يسمح للمستخدم بالتحكم في أجزاء من XML أو XSLT بدون قيود كافية، خصوصًا لو بيتم تمرير المدخلات إلى Processor قادر على الوصول إلى وظائف أو موارد حساسة.
حسب الـ Processor والإعدادات المستخدمة، ممكن تؤدي الثغرة إلى تأثيرات مختلفة، منها:
مثلًا، إدخال المستخدم ممكن يبدأ كنص بسيط، لكن لو تم تفسيره كـ Template أو XSLT أو SSI، ممكن يتحول إلى تعليمات يفهمها السيرفر.
وعشان كده أثناء اختبار تطبيق بشكل قانوني، حاول تحدد:
في الفيديو ده هناخد جولة عملية في 3 أنواع مهمة:
- 🔥 SSTI - Server-Side Template Injection
- 🧩 SSI - Server-Side Includes Injection
- ⚙️ XSLT Injection
أولًا: SSTI - Server-Side Template Injection
ثغرةSSTI بتحصل لما التطبيق يدخل بيانات المستخدم داخل Template ويتم تفسيرها على السيرفر بدل ما يتعامل معاها كنص عادي.المشكلة إن بعض محركات الـ Template بتسمح بعمليات تتجاوز مجرد عرض النص، وبالتالي لو التطبيق متكوّن بشكل غير آمن، ممكن الثغرة تؤدي إلى:
- 📌 كشف معلومات من بيئة التطبيق.
- 📂 الوصول إلى ملفات على السيرفر في بعض السيناريوهات.
- ⚠️ الوصول إلى وظائف حساسة داخل محرك الـ Template.
- 💻 وفي حالات معينة، إمكانية تنفيذ أوامر على الخادم.
- Python مع
Jinja2. - PHP مع
Twig. - ومحركات Template أخرى حسب طريقة استخدامها داخل التطبيق.
ثانيًا: SSI - Server-Side Includes Injection
تقنيةSSI بتسمح للسيرفر بتضمين محتوى داخل صفحات HTML قبل إرسالها للزائر.الفكرة ممكن تكون مفيدة جدًا في المواقع اللي بتحتاج تضمين أجزاء مشتركة، زي:
- Header.
- Footer.
- ملفات أو محتوى مشترك.
- أجزاء متكررة بين صفحات الموقع.
في بعض إعدادات السيرفر، وجود توجيهات خطيرة مثل
exec ممكن يحول المشكلة من مجرد Server-Side Include إلى تنفيذ أوامر على الخادم.لذلك عند اختبار SSI، مهم تفهم:
- هل SSI مفعّل أصلًا؟
- إيه الملفات اللي بيتم تفسيرها كـ SSI؟
- هل مدخلات المستخدم بتوصل إلى تعليمات SSI؟
- هل الأوامر الحساسة مسموح بتنفيذها؟
ثالثًا: XSLT Injection
XSLT هي تقنية بتُستخدم لمعالجة مستندات XML وتحويلها إلى شكل آخر، زي HTML.المشكلة الأمنية ممكن تظهر لما التطبيق يسمح للمستخدم بالتحكم في أجزاء من XML أو XSLT بدون قيود كافية، خصوصًا لو بيتم تمرير المدخلات إلى Processor قادر على الوصول إلى وظائف أو موارد حساسة.
حسب الـ Processor والإعدادات المستخدمة، ممكن تؤدي الثغرة إلى تأثيرات مختلفة، منها:
- 🔎 كشف معلومات عن بيئة التطبيق.
- 📄 الوصول إلى ملفات محلية في بعض السيناريوهات.
- 🌐 الوصول إلى موارد خارجية إذا كان ذلك مسموحًا.
- ⚠️ وفي بعض البيئات والإعدادات، تأثيرات أخطر قد تصل إلى تنفيذ أوامر.
XSLT محتاج معرفة نوع الـ Processor المستخدم وإمكانياته، لأن سلوك الثغرة بيختلف من بيئة للتانية.ليه ثغرات الحقن دي مهمة في اختبار الاختراق؟
الخطورة في ثغرات الحقن مش مرتبطة باسم الثغرة فقط، لكن بـ المكان اللي وصلت له بيانات المستخدم والامتيازات المتاحة للمعالجة.مثلًا، إدخال المستخدم ممكن يبدأ كنص بسيط، لكن لو تم تفسيره كـ Template أو XSLT أو SSI، ممكن يتحول إلى تعليمات يفهمها السيرفر.
وعشان كده أثناء اختبار تطبيق بشكل قانوني، حاول تحدد:
- أين يتم إدخال بيانات المستخدم؟
- هل البيانات يتم تفسيرها أم عرضها كنص فقط؟
- ما الـ Engine أو Processor المسؤول عن المعالجة؟
- ما الصلاحيات المتاحة للعملية؟
- هل يمكن الوصول إلى ملفات أو موارد أخرى؟
- هل توجد قيود تمنع الوظائف الحساسة؟
🎥 شاهد الشرح العملي
الفيديو بيجمع شرح SSTI وSSI وXSLT Injection في جولة عملية، مع توضيح طريقة اكتشاف المشكلة وفهم تأثيرها داخل بيئات اختبار مصممة للتعلم واختبار الاختراق بشكل قانوني.