واحد من الناسـ
06-18-2008, 10:28 PM
السلام عليكم
اعلنت الشركه الام عن وجود ثغره بالنسخ 3.7.1 و 3.7.1 PL1
المصدر
http://www.vbulletin.com/forum/showthread.php?p=1570307 (http://www.vbulletin.com/forum/showthread.php?p=1570307)
الترقيع :
1- للاعضاء المرخصين توجه الي الرابط التالي
http://members.vbulletin.com/patches.php (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 bulletin->GPC['redirect']));
print_cp_header($vbphrase['redirecting_please_wait'], '', "****************************** ************************************************** =\"Refresh\" ***********************************=\"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 bulletin->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'], '', "****************************** ************************************************** =\"Refresh\" ***********************************=\"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)
اضف اسفله
$gotopage = create_full_url($gotopage);
$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="************************************************** ******************************=\'' . $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');
?>
الملفات المعدله بالمرفقات
تحذير لاتقم برفع ملفات الترقيع من ترخيص غير ترخيص منتداك لكي لايتم التبليغ عليك
دمتم بود
dr-php
منقول نصي من الأخ dr-php جزاه الله كل خير
دُمتم بحفظ الله
اعلنت الشركه الام عن وجود ثغره بالنسخ 3.7.1 و 3.7.1 PL1
المصدر
http://www.vbulletin.com/forum/showthread.php?p=1570307 (http://www.vbulletin.com/forum/showthread.php?p=1570307)
الترقيع :
1- للاعضاء المرخصين توجه الي الرابط التالي
http://members.vbulletin.com/patches.php (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 bulletin->GPC['redirect']));
print_cp_header($vbphrase['redirecting_please_wait'], '', "****************************** ************************************************** =\"Refresh\" ***********************************=\"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 bulletin->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'], '', "****************************** ************************************************** =\"Refresh\" ***********************************=\"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)
اضف اسفله
$gotopage = create_full_url($gotopage);
$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="************************************************** ******************************=\'' . $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');
?>
الملفات المعدله بالمرفقات
تحذير لاتقم برفع ملفات الترقيع من ترخيص غير ترخيص منتداك لكي لايتم التبليغ عليك
دمتم بود
dr-php
منقول نصي من الأخ dr-php جزاه الله كل خير
دُمتم بحفظ الله