باگ جديد در تمامي نسخه هاي ناك و ناك پلاتينيوم

irandoct

Member
با سلام
من هنگام تست ناك 7.8 با يك باگ امنيتي برخورد كردم كه در تمامي نسخه هاي ديگر هم وجود دارد .

ويندوز (directory traversal attacks)
با استفاده از اين باگ هكر مي تواند به فايلهاي موجود در ساير فولدرهاي غير از ريشه سايت دسترسي پيدا كند .
لينوكس (XSS Attacks )
در سرور لينوكس هكر مي تواند به سايت حمله XSS بكند .

براي فيكس اين باگ من يك تابع جديد در فايل mainfile.php اضافه كردم . بعد متغييرهاي زبان نمايش قبل از ذخيره شدن در كوكي توسط اين تابع فيلتر مي شوند .

نحوه حل اين مشكل :
تابع زير را به انتهاي فايل mainfile.php اضافه كنيد :
کد:
 function html2txt($document){
$search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
               '@<[\\/\\!]*?[^<>]*?>@si',            // Strip out HTML tags
               '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
               '@<![\\s\\S]*?--[ \\t\\n\\r]*>@'          // Strip multi-line comments including CDATA
);
$text = preg_replace($search, '', $document);
return $text;
}
حالا در فايل mainfile.php اين سطر را پيدا كنيد ( دومين سطري كه در فايل يافت مي شود )
کد:
 if (!defined('FORUM_ADMIN')) {
حالا پس از اين سطر كدهاي زير را اضافه كنيد
کد:
 $language = html2txt($language);
$lang = html2txt($lang);
حتما قبل از اعمال اين فيكس از فايل خود پشتيبان بگيريد .
روز خوش
 
آخرین ویرایش:

msnasiri

Member
خب این باگ چطوری خطرناک می شه؟
یعنی یه هکر چطوری میتونه این کارو انجام بده؟
خلاصه عیب از کجاست؟
 

irandoct

Member
به دليل اينكه داده هاي ارسالي كاربر قبلا فيلتر نمي شد هكر مي توانست كدهاي خطرناك را از طريق همين متغيير lang به سيستم ارسال كند مثلا :
The Cookie variable lang has been set to ../../../../../../../../boot.ini%00.
The Cookie variable lang has been set to ../../../../../../../../boot.ini%00.html.
چون مقدار متغيير lang در كوكي فيلتر نمي شد امكان ارسال هر نوع فايلي به سيستم وجود داشت . تابعي كه در پست قبل ارسال شده قبل از ارسال و ذخيره كوكي مقدار آنرا فيلتر مي كند !
ضمنا اين خطر هم در ريشه سايت / و هم در index.php و هم در modules.php وجود داشت . و با اين فيلتر مشكلات همه فايلها حل مي شود .
 
اینو به صادق و فرهاد جان گزارش می دم ببینه
تا بررسی بشه
 
آخرین ویرایش:

izone

Active Member
با سپاس از شما.

ولی اینو در نسخه پچ 3.2 که گرفته بودند. در ضمن NukeSentinel هم باید جلوگیری کنه! شما روی نیوک ایران نیوک نسخه 3.0.1 هم آزمایش کردید؟؟؟ ممنون میشم پاسخ بدید.

شاد باشید.
 

irandoct

Member
با سلام

در صورت فعال بودن سيستم امنيتي سنتينل كل تگهاي خطرناك مانند (script ) كه توسط كاربر در نوار آدرس وارد مي شوند فيلتر مي شوند . منتها بدون فعال بودن اين سيستمها تمامي نسخه هاي ناك و پلاتينيوم نفوذپذير خواهند بود . توصيه مي كنم براي امنيت بيشتر ناك پلاتينيوم ايران ناك شما اين پچ را اعمال كنيد . من بعد از نوشتن اين پچ و اعمال آن ، ناك 7.8 را با استفاده از برنامه Acunetix Web Vulnerability Scanner 4 تست كردم و خوشبختانه مشكل به طور كامل حل شد .
قبل از اعمال اين پچ من به راحتي توانستم در سرور لوكال ( سيستم كاريم ) به اطلاعات مهم سرور دسترسي پيدا كنم .
The Cookie variable lang has been set to ../../../../../../../../boot.ini%00.
The Cookie variable lang has been set to ../../../../../../../../boot.ini%00.html
همانطور كه مي بينيد من بجاي متغيير زبان در كوكي يك فايل html فراخواني كردم . و از كدهاي خطرناك استفاده كردم!

( ضمنا هيچ كدام از پچهاي سايت nukeresources.com حتي 3.2 اين باگ را شناسائي و مرتفع نكرده اند . )
 
خوب الا من توی ایران نیوک دیدم فرهاد جان تاکید کرده بودند حتی لینک داده بودند ! که نگهبان رو چه طوری تنظیم کنند و فکر می کنم مشکلی پیش نیاد ! برای کاربرا !
 

S4DEGH

Well-Known Member
سلام

بسيار سپاسگذارم !

من در اين 3 شب گذشته دسترسي به اينترنت نداشتم و كلا با دنياي سايت و ... دور بودم !

بررسي ميكنم .


و خيلي ممنون بابت اطلاع !
 

جدیدترین ارسال ها

بالا