الصفحة الرئيسية الأخبار أخبار الثغرات خطأ برمجي في PHP 5.2.9 يسمح بتخطي الوضع الآمن بنظام ويندوز
خطأ برمجي في PHP 5.2.9 يسمح بتخطي الوضع الآمن بنظام ويندوز
تقييم المستخدمين: / 5
عاديممتاز 
الكاتب عبدالمهيمن الآغا   
الأربعاء, 27 مايو 2009 14:32
اكتشف خطأ برمجي في مفسّر لغة 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"."\r\n");
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)Add Comment
0
...
أرسلت بواسطة: ابوعبدالله في May 28, 2009
بارك الله فيكم وعلى ماتقومون فيه

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

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

تحياتي
ابوعبدالله
0
ببدون
أرسلت بواسطة: L2nux في May 28, 2009
شكراً لك اخي العزيز

ماذا لو منعنا دوال التنفيذ ؟؟
عبدالمهيمن الآغا
رد: ابوعبدالله, L2nux
أرسلت بواسطة: عبدالمهيمن في May 28, 2009
@ابوعبدالله: دراسة الثغرة وطريقة استغلالها بشكل عام يساعد على تفادي هذه النوعية من الثغرات بالمستقبل وطالما أننا نضعها للغرض العلمي ولا نشجع أحد على القيام بأمور غير شرعية فلا أجد أي مشكلة في ذلك :)

@L2nux: الوضع الآمن يستخدم لمنع دوال مثل exec و system لكن بهذه الثغرة "البسيطة"! تمكنا من تنفيذ الدالة exec, اضافة الدوال للقائمة المحظورة قد يمنع استغلال هذه الثغرة لكن اضافة الدوال بشكل دائم للقائمة المحظورة لا يعتبر حل صحيح للحماية.
0
مشاركة بسيطة
أرسلت بواسطة: arab-tools.com في May 30, 2009
السلام عليكم

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

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

والله العالم

موفقين

أضف تعليق
يجب عليك الاشتراك بالموقع لتتمكن من كتابة التعليقات, الاشتراك مجاني ويستغرق بضع ثوان فقط!
اذا كنت مشترك مسبقا في الموقع فضلاً قم بتسجيل الدخول.

busy
 

SecurityTargets