السلام عليكم ورحمة الله وبركاته
بدأت منذ فتره إصدار نسخ vBulletin 3.5.X الجديده و المطوره والتي تسعى مجموعة jelsoft أن تضع فيها بعض المميزات ووصلت بتطويرها حتى الان الى إصداره أسمتها Candidate 3 وهذا يعني أن النسخه ثبتت بعد إصدارات البيتا التي طرحتها منذ فتره
وأرى أن بعض الأخوان يتسرع بتركيب هذه النسخه والتي لا يعلم أحد عنها سوى خاصية الـ plugins و الـ ajax .
مع العلم انه يوجد فيها بعض الثغرات ايضاً ولكنها لم تنتشر بشكل كبير مثل الإصدارات السابقة vBulletin 3.0.X
وهذه ثغره من نوع Path Disclosure ومستواها متوسط وعن طريقها يستطيع المخترق معرفة دليل الموقع موجود بأي مكان على الخادم
الثغره موجوده في ملف class_core.php وبالتحديد في سطر رقم 1365
كود PHP:
foreach ($this->superglobal_lookup AS $arrayname)
{
$registry->superglobal_size["$arrayname"] = sizeof($GLOBALS["$arrayname"]);
foreach (array_keys($GLOBALS["$arrayname"]) AS $varname)
{
unset($GLOBALS["$varname"]); <<------ تقوم بإزالة المتغيرات من المصفوفه العامه وهنا الخطأ حيث يجب ان تتأكد من المتغير قبل إزالته وكما تلاحظون لا يوجد شرط للتحقق
}
}
الترقيع: 1- افتح ملف
class_core.php وابحث عن السطر التالي : كود PHP:
unset($GLOBALS["$varname"]);
2-
إستبدله بالأتي: كود PHP:
if( !in_array($varname, $this->superglobal_lookup ))
unset($GLOBALS["$varname"]);
3-
إحفظ الملف وقم برفعه. تحياتي لكم