سوق العرب | معهد سكيورتى العرب | وظائف خالية

نسخة كاملة: ثغرة SQL Injection في منتديات MyBB 1.4.6
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية.
السلام عليكم ورحمة الله وبركاته :


ثغرة SQL Injection في منتديات MyBB 1.4.6



انتشر بتاريخ 23/6/2009 استغلال لثغرة SQL Injection اكتشفت في جميع الاصدارات قبل 1.4.6 من منتديات MyBB المفتوحة المصدر. تم برمجة الاستغلال بطريقة تمكن المهاجم من زرع ملف php shell في السيرفر بكل سهولة ليصبح بالنهاية قادر على تنفيذ أوامر على السيرفر.

الاستغلال يبدء SQL Injection وينتهي Remote Code Execution! شخصيا أجدها طريقة جميلة لتطوير استغلال ثغرات SQL Injection ومن النادر أن أجد استغلالات برمجت بهذه الطريقة

بالنسبة لسبب الثغرة فيعود لخطأ برمجي في الملف: inc/datahandlers/user.php عند تمرير المتغير birthdayprivacy وعدم التأكد من مدخلات المستخدم بطريقة صحيحة

لو اطلعنا على الملف user.php في الاصدار 1.4.6 سنلاحظ بالسطر 1111 تمرير المتغير birthdayprivacy دون التأكد من مدخلات المستخدم بأي شكل كان:

كود :
$this->user_update_data['birthdayprivacy'] = $user['birthdayprivacy'];

أما في الاصدار 1.4.7 سنرى بنفس السطر الترقيع وهو استخدام الدالة escape_string لكي لا يتمكن المهاجم من حقن استعلام SQL آخر عند تمرير المتغير السابق للاستعلام الأصلي.

كود :
$this->user_update_data['birthdayprivacy'] = $db->escape_string($user['birthdayprivacy']);


لذا وجب التحذير


ادارة سكيورتي العرب
روابط المرجعيات