هجوم اختراق الدليل
يستغل هجوم اختراق الدليل ، أو اختراق المسار ، أو هجوم النقطة-النقطة-الشرطة المائلة، عدم كفاية التحقق الأمني أو تنظيف أسماء الملفات التي يُدخلها المستخدم، بحيث تُمرر الأحرف التي تُمثل "الانتقال إلى الدليل الأصل" إلى واجهة برمجة تطبيقات نظام الملفات في نظام التشغيل . ويمكن استغلال التطبيق المُتأثر للوصول غير المصرح به إلى نظام الملفات .
أمثلة
في لغة PHP
من الأمثلة النموذجية على التطبيقات المعرضة للاختراق في كود PHP ما يلي:
<?php $template = "red.php" ; if ( isset ( $_COOKIE [ "TEMPLATE" ])) { $template = $_COOKIE [ "TEMPLATE" ]; } include "/home/users/phpguru/templates/" . $template ;يمكن أن يكون الهجوم على هذا النظام هو إرسال طلب HTTP التالي:
طلب GET إلى /vulnerable.php HTTP / 1.0 ملف تعريف الارتباط : TEMPLATE=../../../../../../../../etc/passwdسيقوم الخادم بعد ذلك بإنشاء استجابة مثل:
HTTP / 1.0 200 OK Content-Type : text/html Server : Apache root:fi3sED95ibqR6:0:1:System Operator:/:/bin/ksh daemon:*:1:1::/tmp: phpguru:f8fk3j1OIf31.:182:100:Developer:/home/users/phpguru/:/bin/csh تسببت الأحرف المتكررة ../بعد ذلك في الانتقال إلى الدليل الجذر ، ثم تضمين ملف كلمة مرور يونكس ./home/users/phpguru/templates/include()/etc/passwd
يُعد ملف Unix /etc/passwdمن الملفات الشائعة المستخدمة لتوضيح اختراق الدليل، حيث يستخدمه المخترقون غالبًا لمحاولة فك تشفير كلمات المرور. مع ذلك، في أنظمة Unix الحديثة، /etc/passwdلا يحتوي الملف على كلمات المرور المشفرة، بل توجد في /etc/shadowملف آخر لا يمكن للمستخدمين غير المصرح لهم قراءته. حتى في هذه الحالة، /etc/passwdتُظهر القراءة قائمة بحسابات المستخدمين، والتي يمكن أن تُشكّل نقطة انطلاق لهجمات أخرى.
ثغرة أمنية في سحابات الملفات
ومن الأمثلة الأخرى ثغرة "Zip Slip" التي تؤثر على العديد من تنسيقات ملفات الأرشيف مثل ZIP . [ 1 ]
الاختلافات
يستخدم اجتياز الدليل في أبسط صوره هذا ../النمط. وفيما يلي بعض الاختلافات الشائعة:
مايكروسوفت ويندوز
يستخدم نظاما التشغيل مايكروسوفت ويندوز ودوس أنماطًا لاجتياز الدليل . [ 2 ]..\../
يحتوي كل قسم على دليل جذر منفصل (يُسمى C:\حيث يمكن أن يكون C أي قسم)، ولا يوجد دليل جذر مشترك أعلى ذلك. هذا يعني أنه بالنسبة لمعظم ثغرات الدليل في نظام ويندوز، تقتصر الهجمات على قسم واحد.
كان اختراق الدليل سببًا للعديد من الثغرات الأمنية في مايكروسوفت. [ 3 ] [ 4 ]
ترميز النسبة المئوية في عناوين URI
تحاول بعض تطبيقات الويب منع اجتياز الدليل عن طريق فحص مسار عنوان URI للطلب بحثًا عن أنماط مثل ../. يُجرى هذا الفحص أحيانًا عن طريق الخطأ قبل فك تشفير النسبة المئوية%2e%2e/ ، مما يؤدي إلى قبول عناوين URI التي تحتوي على أنماط مثل على الرغم من فك تشفيرها إلى ../قبل الاستخدام الفعلي. [ 5 ]
التشفير المزدوج
قد يتم فك تشفير النسبة المئوية عدة مرات عن طريق الخطأ؛ مرة قبل التحقق، ومرة أخرى بعده، مما يجعل التطبيق عرضة لهجمات التشفير المزدوج للنسبة المئوية [ 6 ] ، حيث تُستبدل الأحرف غير المسموح بها بصيغتها المشفرة بنسبة مئوية مضاعفة لتجاوز إجراءات الحماية. [ 7 ] على سبيل المثال، في هجوم التشفير المزدوج للنسبة المئوية، ../قد تُستبدل بصيغتها المشفرة بنسبة مئوية مضاعفة %252E%252E%252F. [ 8 ] وقد أثر هذا النوع من الثغرات الأمنية بشكل ملحوظ على الإصدارات 5.0 والإصدارات الأقدم من برنامج خادم الويب IIS من مايكروسوفت . [ 9 ]
UTF-8
قد يقبل مُفكِّك ترميز UTF-8 سيئ التنفيذ أحرفًا مُرمَّزة باستخدام بايتات أكثر من اللازم، مما يؤدي إلى ترميزات طويلة جدًا ، مثل %c0%aeاستخدام بدلاً من %2eلتمثيل .. هذا الأمر محظور صراحةً بموجب معيار UTF-8، [ 10 ] ولكنه مع ذلك تسبب في ثغرات أمنية في اجتياز الدليل في برامج مثل خادم الويب IIS . [ 11 ]
أرشيف
تسمح بعض تنسيقات الأرشيف، مثل zip، بهجمات اختراق المسارات: إذ يمكن كتابة ملفات الأرشيف بحيث تستبدل الملفات الموجودة على نظام الملفات عن طريق التراجع. ويمكن كتابة التعليمات البرمجية التي تستخرج ملفات الأرشيف للتحقق من أن مسارات الملفات داخل الأرشيف لا تتضمن اختراقًا للمسارات.
وقاية
تتمثل إحدى الخوارزميات المحتملة لمنع اختراق الدليل في ما يلي:
- قم بمعالجة طلبات URI التي لا تؤدي إلى طلب ملف، على سبيل المثال، تنفيذ خطاف في كود المستخدم، قبل المتابعة أدناه.
- عند إجراء طلب URI لملف/دليل، قم بإنشاء مسار كامل للملف/الدليل إذا كان موجودًا، وقم بتطبيع جميع الأحرف (على سبيل المثال،
%20تحويلها إلى مسافات). - يفترض أن مسار "جذر المستند" المؤهل بالكامل والمُعَيَّر معروف، وأن طول هذا المسار هو N. افترض أنه لا يمكن تقديم أي ملفات خارج هذا الدليل.
- تأكد من أن الأحرف N الأولى من المسار المؤهل بالكامل للملف المطلوب هي نفسها تمامًا مثل "جذر المستند".
- إذا كان الأمر كذلك، فاسمح بإعادة الملف.
- وإلا، فأرجع خطأً، لأن الطلب يتجاوز بوضوح ما ينبغي أن يُسمح لخادم الويب بتقديمه.
إن استخدام امتداد ملف محدد مسبقًا ومبرمج مسبقًا لإلحاق المسار لا يحد بالضرورة من نطاق الهجوم على الملفات التي تحمل امتداد الملف هذا.
<?php include $_GET [ "file" ] . ".html" ;يمكن للمستخدم استخدام حرف NULL (الذي يشير إلى نهاية السلسلة) لتجاوز كل شيء بعد النقطة $_GET. (هذا خاص بلغة PHP).
انظر أيضاً
- قد تتعرض بيئات Chroot المعزولة لهجمات اختراق الدليل إذا تم إنشاؤها بشكل غير صحيح. ومن بين طرق اختراق الدليل المحتملة فتح واصفات الملفات المؤدية إلى أدلة خارج البيئة المعزولة. كما يُعد دليل العمل الحالي طريقة أخرى محتملة للهجوم.
- مرجع كائن مباشر غير آمن
مراجع
- ↑ ثغرة "Zip Slip" الأمنية . Snyk .
تُستغل هذه الثغرة باستخدام ملف مضغوط مُصمم خصيصًا يحتوي على أسماء ملفات تسمح بالوصول إلى محتويات المجلد (مثل ../../evil.sh). يمكن أن تؤثر ثغرة Zip Slip على العديد من تنسيقات الملفات المضغوطة، بما في ذلك tar وjar وwar وcpio وapk وrar و7z.
- ↑ "تسمية الملفات والمسارات ومساحات الأسماء" . مايكروسوفت.
تقوم وظائف إدخال/إخراج الملفات في واجهة برمجة تطبيقات ويندوز بتحويل '/' إلى '\' كجزء من تحويل الاسم إلى اسم بنمط NT
- ↑ بيرنيت، مارك (20 ديسمبر 2004). "ثغرات أمنية عميقة" . سكيورتي فوكس . مؤرشف من الأصل في 2 فبراير 2021. تم الاطلاع عليه في 22 مارس 2016 .
- ↑ "مايكروسوفت: ثغرات أمنية (اختراق الدليل)" . تفاصيل CVE.
- ↑ "اجتياز المسار" . OWASP .
- ↑ " CWE-174: فك تشفير مزدوج لنفس البيانات" . cwe.mitre.org . تم الاطلاع عليه بتاريخ 24 يوليو 2022.
يقوم البرنامج بفك تشفير نفس المدخلات مرتين، مما قد يحد من فعالية أي آلية حماية تحدث بين عمليتي فك التشفير.
- ↑ "CAPEC-120: التشفير المزدوج" . capec.mitre.org . تاريخ الاطلاع: 23 يوليو 2022.
قد يسمح هذا [التشفير المزدوج] للمهاجم بتجاوز المرشحات التي تحاول اكتشاف الأحرف أو السلاسل غير المسموح بها، مثل تلك التي قد تُستخدم في هجمات الاختراق أو الحقن. [...] جرّب التشفير المزدوج لأجزاء من المدخلات لمحاولة تجاوز المرشحات.
- ↑ " الترميز المزدوج" . owasp.org . تم الاطلاع عليه بتاريخ 23 يوليو 2022.
على سبيل المثال، يُمثل الرمز ../ (نقطة-نقطة-شرطة مائلة) الرمز %2E%2E%2F في النظام الست عشري. عند
إعادة ترميز الرمز %، يكون تمثيله في النظام الست عشري هو %25. ستكون نتيجة عملية الترميز المزدوج ../ (نقطة-نقطة-شرطة مائلة) هي %252E%252E%252F
- ↑ "CVE-2001-0333" . الثغرات الأمنية الشائعة ونقاط الضعف .
- ↑ يرجو، ف. (2003). "RFC 2279 - UTF-8، صيغة تحويل ISO 10646" . IETF . doi : 10.17487/RFC3629 .
- ↑ "CVE-2002-1744" . الثغرات الأمنية الشائعة ونقاط الضعف .
موارد
روابط خارجية
- DotDotPwn - ضبابية اجتياز الدليل
- إدانة بتهمة استخدام تقنية اختراق الدليل.
- "لا يستفيد من القوانين السيئة إلا الأشرار" . تعليق على موقع zdnet.co.uk ، 7 أكتوبر 2005. مؤرشف من الأصل بتاريخ 8 أكتوبر 2006.
- خطأ في النظام: تنفيذ أمر عن بعد في IIS %c1%1c
- نشرة التشفير، يوليو 2001.
- ثغرات أمنية في الويب
