أخبار الثغرات

خطأ برمجي في PHP 5.2.9 يسمح بتخطي الوضع الآمن بنظام ويندوز

تم أرشفة هذا المحتوى


اكتشف خطأ برمجي في مفسّر لغة PHP الخاص بنظام ويندوز في الاصدار 5.2.9 وبعض الاصدارات السابقة يتمكن المهاجم من استغلاله لتنفيذ أوامر على النظام حتى لو كان الوضع الآمن مفعّل من اعدادات ملف php.ini, ويعود السبب لخطأ في طريقة تعامل النظام و مفسّر لغة PHP مع هيكلة الملفات في نظام ويندوز.

PHP

جميعنا يعلم أننا في نظام ويندوز نستخدم Backslash عوضا عن Slash / في أنظمة Unix-like لكن نظام ويندوز بحد ذاته لا يفرّق بين الاثنين, أي أن المسار: C:php هو نفسه C:/php هذه ليست ثغرة بحد ذاتها لكن بسبب تعامل النظام مع هيكلة الملفات بهذا الشكل سيتمكن المهاجم من تخطي الوضع الآمن عن طريق اضافة متبوعا بالأمر المراد تنفيذه باستخدام الدالة exec مثلا.
لو اطلعنا على الاستغلال الخاص بهذه الثغرة سنلاحظ أن الفكرة بسيطة جدا فهو يتألف من ملف php يحتوي على حقل لادخال الأمر الذي نريد تنفيذه, في البداية سيتم تعريف الأمر المدخل بالسطر 25:
$cmd = $_REQUEST[‘cmd’];
ثم سيكتب الى ملف cmd.bat في السطر 27:
$batch = fopen (“cmd.bat”,”w”);
fwrite($batch,”$cmd>abysssec.txt”.”rn”);
fwrite($batch,”exit”);
بهذه الحالة بفرض أننا أدخلنا الأمر dir هذا يعني أن محتوى الملف cmd.bat أصبح:
dir > abysssec.txt
exit
وعندها نستطيع تشغيل ملف cmd.bat باستخدام الدالة exec بهذا الشكل:
exec(“start cmd.bat”);

ليتم حفظ الناتج داخل الملف abysssec.txt وعرضه عن طريق الأمر:

require(“abysssec.txt”);
للاطلاع على الثغرة وتحميل الاستغلال: Milw0rm: 8799

‫4 تعليقات

  1. @ابوعبدالله: دراسة الثغرة وطريقة استغلالها بشكل عام يساعد على تفادي هذه النوعية من الثغرات بالمستقبل وطالما أننا نضعها للغرض العلمي ولا نشجع أحد على القيام بأمور غير شرعية فلا أجد أي مشكلة في ذلك 🙂

    @L2nux: الوضع الآمن يستخدم لمنع دوال مثل exec و system لكن بهذه الثغرة “البسيطة”! تمكنا من تنفيذ الدالة exec, اضافة الدوال للقائمة المحظورة قد يمنع استغلال هذه الثغرة لكن اضافة الدوال بشكل دائم للقائمة المحظورة لا يعتبر حل صحيح للحماية.

  2. بارك الله فيكم وعلى ماتقومون فيه

    لكن كنت اتمني عدم التطرق لشرح طريقة الاستغلال

    فياليت تسيرون على نهجكم الأول فى ذكر الثغره وطريقة الترقيع لها وعدم طرح أستغلالها

    تحياتي
    ابوعبدالله

  3. السلام عليكم

    الغريب في الأمر ، انه بنفس الإصدار تم اكتشاف ثغرة في سيرفرات يونكس أيضاً

    وأما بالنسبة للدوال ، فتستطيعون استخدام أي دالة متعلقة بتنفيذ الاوامر وذلك مثل passthru

    والله العالم

    موفقين

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى