سلام دوستان عزیز
طی بررسی های اخیر به خطای زیر رسیدیم :
این خطا در تمامی نسخه ها MYBB قرار دارد و پایه خطا به علت تعریف نشدن صحیح آرایه ها و فانشن mysqli_real_escape_string میباشد .
ابتدا ما این خطا را از لحاظ SQLI تست نمودیم ولی بعد از بررسی دقیق تر متوجه شدیم فقط خطا هست اما جهت امنیت بیشتر بهتر است رفع گردد . سایتهای زیادی این خطا را دارا هستند (باز هم تحت بررسی میباشد بهتر است پچ نمائید ) نمونه :
راه حل و روش پچ :
فایل search.php را ویرایش و لاین 59 یا خط زیر را پیدا کنید :
سپس خط بالا را با کد زیر تعویض نمائید :
اگر دوستان علاقه داشتند در مورد این فانشن و خطا بیشتر بدانند به لینک زیر مراجعه نمایند :
http://ir2.php.net/mysql_real_escape_string
http://ir2.php.net/mysql_escape_string
البته سایت بالا به کاربرانش توصیه کرده است بجای استفاده از فانشن mysql_escape_string از mysql_real_escape_string () استفاده نماید . تفاوت این دو بیشتر در سرعت خواندن از دیتابیس هست . این فانشن امنیتی میباشد که باعث جلوگیری از ورود مقادیری همانند کاراکتر ها \x00, \n, \r, \, ', " and \x1a. و در نهایت جلوگیری از SQL Injection میباشد .

با تشکر از دوستان عزیز MojiRider و Mohammad-Za بخاطر همکاری و بررسی در این موضوع
طی بررسی های اخیر به خطای زیر رسیدیم :
کد php:
http://community.mybb.com/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
این خطا در تمامی نسخه ها MYBB قرار دارد و پایه خطا به علت تعریف نشدن صحیح آرایه ها و فانشن mysqli_real_escape_string میباشد .
ابتدا ما این خطا را از لحاظ SQLI تست نمودیم ولی بعد از بررسی دقیق تر متوجه شدیم فقط خطا هست اما جهت امنیت بیشتر بهتر است رفع گردد . سایتهای زیادی این خطا را دارا هستند (باز هم تحت بررسی میباشد بهتر است پچ نمائید ) نمونه :
![[تصویر: mybb_sqli_error.png]](http://uploaderx.persiangig.com/C/mybb_sqli_error.png)
کد:
Exploit :
search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
Demo :
http://community.mybb.com/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
Error :
Warning [2] mysqli_real_escape_string() expects parameter 2 to be string, array given - Line: 874 - File: inc/db_mysqli.php PHP 5.4.19-1~dotdeb.1 (Linux)کد php:
Exm :
http://forum.iranphp.org/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
http://community.mybb.com/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
http://www.mybb.fr/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
کد:
http://my-bb.ir/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=
http://my- bb.ir/search.php?action=results&sid[0]=9afaea732cb32f06fa34b1888bd237e2&sortby=&order=راه حل و روش پچ :
فایل search.php را ویرایش و لاین 59 یا خط زیر را پیدا کنید :
کد:
$sid = $db->escape_string($mybb->input['sid']);سپس خط بالا را با کد زیر تعویض نمائید :
کد:
if(is_array($mybb->input['sid']))
$sid = $db->escape_string(implode($mybb->input['sid']));
else
$sid = $db->escape_string($mybb->input['sid']);اگر دوستان علاقه داشتند در مورد این فانشن و خطا بیشتر بدانند به لینک زیر مراجعه نمایند :
http://ir2.php.net/mysql_real_escape_string
http://ir2.php.net/mysql_escape_string
البته سایت بالا به کاربرانش توصیه کرده است بجای استفاده از فانشن mysql_escape_string از mysql_real_escape_string () استفاده نماید . تفاوت این دو بیشتر در سرعت خواندن از دیتابیس هست . این فانشن امنیتی میباشد که باعث جلوگیری از ورود مقادیری همانند کاراکتر ها \x00, \n, \r, \, ', " and \x1a. و در نهایت جلوگیری از SQL Injection میباشد .

با تشکر از دوستان عزیز MojiRider و Mohammad-Za بخاطر همکاری و بررسی در این موضوع
زندگی با امنیت زیباست .
مشاوره امنیتی رایگان برای انجمن mybb کاربران عزیز
contact : hosseinxpr@gmail.com
مشاوره امنیتی رایگان برای انجمن mybb کاربران عزیز
contact : hosseinxpr@gmail.com


