ثغرة أخرى في Apache httpd تسمح بالوصول خارج الدليل الجذر للموقع

تم العثور على متجه هجوم جديد على خادم Apache http ، والذي ظل غير مصحح في التحديث 2.4.50 ويسمح بالوصول إلى الملفات من مناطق خارج الدليل الجذر للموقع. بالإضافة إلى ذلك ، وجد الباحثون طريقة تسمح ، في ظل وجود بعض الإعدادات غير القياسية ، ليس فقط بقراءة ملفات النظام ، ولكن أيضًا بتنفيذ التعليمات البرمجية عن بُعد على الخادم. تظهر المشكلة فقط في الإصدارين 2.4.49 و 2.4.50 ، ولا تتأثر الإصدارات السابقة من الثغرة الأمنية. تم إصدار Apache httpd 2.4.51 بسرعة لمعالجة متغير الضعف الجديد.

المشكلة الجديدة (CVE-2021-42013) في جوهرها تشبه تمامًا الثغرة الأمنية الأصلية (CVE-2021-41773) في 2.4.49 ، والفرق هو فقط في ترميز حرف مختلف ".." على وجه الخصوص ، في الإصدار 2.4.50 ، تم حظر إمكانية استخدام التسلسل "٪ 2e" لتشفير نقطة ، ولكن تم تفويت إمكانية التشفير المزدوج - عند تحديد التسلسل "٪٪ 32٪ 65" ، قام الخادم بفك تشفير إلى "٪ 2e" ، ثم إلى "." ، أي يمكن ترميز الأحرف "../" للذهاب إلى الدليل السابق كـ ". ٪٪ 32٪ 65 /".

بالنسبة لاستغلال الثغرة الأمنية من خلال تنفيذ التعليمات البرمجية ، يكون هذا ممكنًا عند تمكين mod_cgi واستخدام المسار الأساسي ، حيث يُسمح بتنفيذ نصوص CGI (على سبيل المثال ، إذا تم تمكين توجيه ScriptAlias ​​أو علامة ExecCGI محدد في توجيه الخيارات). من المتطلبات الإلزامية لهجوم ناجح أيضًا منح الوصول صراحةً إلى الدلائل التي تحتوي على ملفات قابلة للتنفيذ ، مثل / bin ، أو الوصول إلى جذر نظام الملفات "/" في إعدادات Apache. نظرًا لعدم منح هذا الوصول عادةً ، فإن هجوم تنفيذ التعليمات البرمجية ليس ذا فائدة تذكر للأنظمة الحقيقية.

في الوقت نفسه ، يظل الهجوم على الحصول على محتويات ملفات النظام التعسفي والنصوص المصدر لنصوص الويب ، المتاحة للقراءة من قبل المستخدم الذي يعمل بموجبه خادم http ، ذا صلة. لتنفيذ مثل هذا الهجوم ، يكفي أن يكون لديك دليل على الموقع تم تكوينه باستخدام توجيهات "Alias" أو "ScriptAlias" (لا يكفي DocumentRoot) ، مثل "cgi-bin".

مثال على استغلال يسمح لك بتنفيذ الأداة المساعدة "id" على الخادم: curl 'http://192.168.0.1/cgi-bin/.٪٪32٪65/.٪٪32٪65/.٪٪ 32٪ 65 /.٪٪ 32٪ 65 /.٪٪ 32٪ 65 / bin / sh '- بيانات' صدى نوع المحتوى: نص / عادي ؛ صدى صوت؛ معرف 'uid = 1 (خفي) gid = 1 (خفي) مجموعات = 1 (خفي)

مثال على عمليات الاستغلال التي تسمح لك بعرض محتويات / etc / passwd وأحد البرامج النصية على الويب (لإرجاع كود البرنامج النصي ، يجب تحديد الدليل المحدد من خلال التوجيه "Alias" ، والذي لم يتم تمكين تنفيذ البرنامج النصي من أجله كدليل أساسي): curl 'http: //192.168.0.1 .32 / cgi-bin /.٪٪ 65٪ 32 /.٪٪ 65٪ 32 /.٪٪ 65٪ 32 /.٪٪ 65٪ 32 /.٪ ٪ 65٪ 192.168.0.1 / etc / passwd 'curl' http: //32/aliaseddir/.٪٪65٪32/.٪٪65٪32/.٪٪65٪32/.٪٪65٪32/. ٪٪ 65٪ 2 / usr / local / apacheXNUMX / cgi -bin / test.cgi '

تؤثر المشكلة بشكل أساسي على التوزيعات التي يتم تحديثها باستمرار مثل Fedora و Arch Linux و Gentoo ، بالإضافة إلى منافذ FreeBSD. الحزم في الفروع المستقرة لتوزيعات خوادم Debian و RHEL و Ubuntu و SUSE المحافظة لن تتأثر. لا تظهر المشكلة إذا تم رفض الوصول إلى الدلائل بشكل صريح باستخدام الإعداد "طلب الكل مرفوض".

المصدر: opennet.ru

إضافة تعليق