اختبار اختراق ع ثغره Command Injection
منذ أسبوعين
عرض العمل
الوصف
قمت بإجراء اختبار اختراق (Penetration Testing) على تطبيق ويب ضعيف عمداً (DVWA) لتقييم مدى فعالية آليات الحماية المطبقة ضد هجمات الحقن (Injection Attacks)، وتحديداً على وظيفة "Ping a device" في صفحة Command Injection.
عند فحص الكود المصدري للتطبيق (بعد ضبط مستوى الأمان على "High")، لاحظت أن المطور اعتمد على أسلوب Blacklist Filtering لمنع حقن الأوامر، عن طريق دالة str_replace() لحذف مجموعة من الرموز الخطيرة مثل: || و & و ; و $ وغيرها. إلا أنني اكتشفت ثغرة منطقية دقيقة في الفلتر: كان يستهدف الرمز "| " (pipe متبوعاً بمسافة) بدلاً من "|" بمفرده.
استغللت هذه الثغرة بإدخال القيمة التالية في حقل الـ IP:
192.168.1.8|id
وبما أن الفلتر يبحث فقط عن نمط "pipe + space"، لم يتعرف على الـ pipe غير المسبوقة بمسافة، فتم تمريرها كما هي إلى دالة shell_exec() الخاصة بنظام التشغيل. نتج عن ذلك تنفيذ أمر id بنجاح، وظهرت النتيجة:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
وهو ما يؤكد إمكانية تنفيذ أوامر نظام تشغيل عشوائية (Arbitrary OS Command Execution) بصلاحيات خادم الويب.
التفاصيل
| المشاهدات | 6 |
| المفضلة | 0 |
| القسم | برمجة, تطوير المواقع و التطبيقات - مواقع الويب |
حساب المستخدم
العربية
English