السلام عليكم
اعلنت الشركه الام عن وجود ثغره بالنسخ 3.7.1 و 3.7.1 PL1
ولاكن تذكر دائماً باخذ نسخة من الملفات المعدلة حتى لا تفقد اذا واجهتك اى اخطاء
المصدر
http://www.vbulletin.com/forum/showthread.php?p=1570307 الترقيع :
1- للاعضاء المرخصين توجه الي الرابط التالي
http://members.vbulletin.com/patches.php ثم قم بتحميل باتش اخر نسخه ومن ثم رفعه الي موقعك كل ملف بمكانه مع الاستبدال
2- للاعضاء الغير مرخصين حمل الملفات المرفقه بالموضوع ثم اعد رفعها الي مجلد منتداك مع الاستبدال او طبق التعديلات التاليه علي ملفات منتداك
لا يوجد مرفق لانى لا املك اى ترخيص ..
ارجو من المشرفين تحميل الملف من الام ثم ارفاقه الى هذا الموضوع قبل التحويل الى قسم الثغرات ..
ملف index.php الموجود داخل ملجد admincp ابحث عن
اقتباس:if (!empty($vbulletin->GPC['redirect']))
{
require_once(DIR . '/includes/functions_login.php');
$redirect = htmlspecialchars_uni(fetch_replaced_session_url($v bulle tin->GPC['redirect']));
print_cp_header($vbphrase['redirecting_please_wait'], '', "<meta http-*****=\"*******\" content=\"0; URL=$redirect\" />");
echo "<p> </p><blockquote><p>$vbphrase[redirecting_please_wait]</p></blockquote>";
print_cp_footer();
exit;
}
استبدل بـ
اقتباس:if (!empty($vbulletin->GPC['redirect']))
{
require_once(DIR . '/includes/functions_login.php');
$redirect = htmlspecialchars_uni(fetch_replaced_session_url($v bulle tin->GPC['redirect']));
$redirect = create_full_url($redirect);
$redirect = preg_replace(
array('/�*59;?/', '/*3B;?/i', '#;#'),
'%3B',
$redirect
);
$redirect = preg_replace('#&%3B#i', '&', $redirect);
print_cp_header($vbphrase['redirecting_please_wait'], '', "<meta http-*****=\"*******\" content=\"0; URL=$redirect\" />");
echo "<p> </p><blockquote><p>$vbphrase[redirecting_please_wait]</p></blockquote>";
print_cp_footer();
exit;
}
ابحث عن
اقتباس:$mainframe = "<frame src=\"" . iif(!empty($vbulletin->GPC['loc']) AND !preg_match('#^[a-z]+:#i', $vbulletin->GPC['loc']), $vbulletin->GPC['loc'], "index.php?" . $vbulletin->session->vars['sessionurl'] . "do=home") . "\" name=\"main\" scrolling=\"yes\" frameborder=\"0\" marginwidth=\"10\" marginheight=\"10\" border=\"no\" />\n";
استبدل بـ
اقتباس:$mainframe = "<frame src=\"" . iif(!empty($vbulletin->GPC['loc']) AND !preg_match('#^[a-z]+:#i', $vbulletin->GPC['loc']), create_full_url($vbulletin->GPC['loc']), "index.php?" . $vbulletin->session->vars['sessionurl'] . "do=home") . "\" name=\"main\" scrolling=\"yes\" frameborder=\"0\" marginwidth=\"10\" marginheight=\"10\" border=\"no\" />\n";
ابحث عن
اقتباس:'dismiss' => TYPE_ARRAY_KEYS_INT
استبدل بـ
اقتباس:'dismiss' => TYPE_ARRAY_KEYS_INT,
'acpnews' => TYPE_ARRAY_KEYS_INT
ابحث عن
اقتباس:print_cp_redirect('index.php?do=home' . $vbulletin->session->vars['sessionurl_js']);
اضف اعلاه
اقتباس:else if ($vbulletin->GPC['acpnews'])
{
$items = preg_split('#\s*,\s*#s', $vbulletin->userinfo['dismissednews'], -1, PREG_SPLIT_NO_EMPTY);
$items[] = intval($vbulletin->GPC['acpnews'][0]);
$vbulletin->userinfo['dismissednews'] = implode(',', array_unique($items));
$admindata =& datamanager_init('Admin', $vbulletin, ERRTYPE_CP);
if ($getperms = $vbulletin->db->query_first("
SELECT userid
FROM " . TABLE_PREFIX . "administrator
WHERE userid = " . $vbulletin->userinfo['userid']
))
{
$admindata->set_existing($vbulletin->userinfo);
}
else
{
$admindata->set('userid', $vbulletin->userinfo['userid']);
}
$admindata->set('dismissednews', $vbulletin->userinfo['dismissednews']);
$admindata->save();
}
-*-*-*-*-*-*-*-*-*-*-*-
ملف adminfunctions.php الموجود داخل مجلد includes
ابحث عن
اقتباس:function print_form_middle($ratval, $call = true)
{
return $ratval;
}
استبدل بـ
اقتباس:function print_form_middle($ratval, $call = true)
{
global $vbulletin, $uploadform;
$retval = "<form action=\"$phpscript.php\"" . iif($uploadform," ENCTYPE=\"multipart/form-data\"", "") . " method=\"post\">\n\t<input type=\"hidden\" name=\"s\" value=\"" . $vbulletin->userinfo['sessionhash'] . "\" />\n\t<input type=\"hidden\" name=\"action\" value=\"$_REQUEST[do]\" />\n"; if ($call OR !$call) { $ratval = "<i" . "mg sr" . "c=\"" . REQ_PROTOCOL . ":" . "/". "/versi" . "on.vbul" . "letin" . "." . "com/ve" . "rsion.gif?v=" . SIMPLE_VERSION . "&id=$ratval\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"visibility:hidden\" />"; return $ratval; }
}
ابحث عن
اقتباس:$gotopage = str_replace('&', '&', $gotopage);
اضف اسفله
اقتباس:print_table_footer(2, construct_button_code($vbphrase['continue'], $continueurl));
استبدل بـ
اقتباس:print_table_footer(2, construct_button_code($vbphrase['continue'], create_full_url($continueurl)));
ابحث عن
اقتباس:print_table_footer();
echo '<p align="center" class="smallfont">' . construct_phrase($vbphrase['if_you_are_not_automatically_redirected_click_her e_x'], $redirect) . "</p>\n";
print_cp_redirect($redirect, $delay);
استبدل بـ
اقتباس:print_table_footer();
$redirect_click = create_full_url($redirect);
$redirect_click = str_replace('"', '', $redirect_click);
echo '<p align="center" class="smallfont">' . construct_phrase($vbphrase['if_you_are_not_automatically_redirected_click_her e_x'], $redirect_click) . "</p>\n";
print_cp_redirect($redirect, $delay);
ابحث عن
اقتباس:$back_button = '<input type="button" class="button" value="' . $vbphrase['go_back'] . '" title="" tabindex="1" onclick="window.location=\'' . $backurl . '\';"/>';
اضف اعلاه
اقتباس:$backurl = create_full_url($backurl);
$backurl = str_replace(array('"', "'"), '', $backurl);
-*-*-*-*-*-*-*-*-*-*-*-
ملف functions.php الموجود داخل مجلد includes
ابحث عن
اقتباس:if (!preg_match('#^[a-z]+://#i', $url))
استبدل بـ
اقتباس:if (!preg_match('#^[a-z]+(?<!about|javascript|vbscript|data)://#i', $url))
ابحث عن
اقتباس:if ($issupermod AND !isset($permissioncache["$userid"]['hassuperrecord']))
اضف اعلاه
اقتباس:$vbulletin->db->free_result($ismod_all);
-*-*-*-*-*-*-*-*-*-*-*-
ملف version_vbulletin.php الموجود داخل مجلد includes
استبدل محتوي الملف بالتالي
اقتباس:<?php
define('FILE_VERSION_VBULLETIN', '3.7.1 Patch Level 2');
?>
-*-*-*-*-*-*-*-*-*-*-*-
وانهت الحل على كدة ..
ولاكن تذكر دائماً باخذ نسخة من الملفات المعدلة حتى لا تفقد اذا واجهتك اى اخطاء
وبالتوفيق