اطلاعات سیستمی سایتتان را نمایش ندهید

Drago

پیشکسوت فعال فناوری اطلاعات
کاربر ممتاز
دیروز تو توئیتر یه نفر یه لینکی گذاشته بود از سایت روزنامه کیهان با عنوان: سرنوشت حجاریان در انتظار خاتمی (و یا همچین چیزی) منم کنجکاو شدم روی لینک کلیک کردم و به پیغام خطای زیر رسیدم، البته من اطلاعات حساس روی خطا (نقاط سفید) رو حذف کردم که مشکلی پیش نیاد:
البته این پیغام فقط به مدت چند دقیقه نشون داده شد. حالا اطلاعات حساسی که تو این پیغام بود عبارت بودن از اسم دیتابیس و کاربری که باهاش به پایگاه داده وصل میشن. حتما میدونین که دیتابیس به عبارتی درونی ترین لایه یک وب سایت هست. چرا این پیغام مهمه؟ چون داده های خطرناکی رو داره نشون میده. خطرناک از نظر استفاده هکرها.
یکی از توصیه های مهم در ایمن سازی یه وبسایت اینه که تا جایی که ممکنه اطلاعات کمتری به هکرها بدین. مثلا در مورد همین سایت، تصور کنین که اگه یه هکر میخواست در حالت عادی وقت بذاره که این اطلاعات رو بدست بیاره، چقدر باید زمان صرف میکرد و از چه راههایی باید وارد میشد!
تکنیک تزریق خطا:
حالا مورد کیهان یک خطای عادی و اجتناب ناپذیره که البته کنترل نشده ولی در حالت کلی یکی از روشهایی که هکرها استفاده می کنن تا اطلاعات سیستمی یه وب سایت رو بدست بیارن روش تزریق خطا هست. تزریق خطا یعنی اینکه به عمد اطلاعاتی وارد سیستم کنی تا سیستم با خطا مواجهه بشه و بعد از اون رفتار سیستم رو زیر نظر بگیری تا اطلاعاتی رو که افشای اونها کنترل نشدن رو بدست بیاری.

چرا میگیم اطلاعات حساس؟
خوب چون مهم هستن. نام پایگاه داده به شما تو
ترزیق دستورات SQL ای کمک میکنه. از اون مهمتر نام کاربری هست. با داشتن یک نام کاربری کافیه که حمله brute force رو بر علیه سیستم اجرا کنی. تو این حمله اگه یکی از متغیرها رو داشته باشی مثلا نام کاربری، کلی تو زمان صرفه جویی میشه و سریعتر ممکنه به پسوورد هدف برسی.
راه حل چیه؟
توجه کنین که کنترل نکردن خطا یک حمله نیست ولی به هکر تو جمع آوری اطلاعات کمک میکنه. راه حلش ولی ساده است، کافیه همه پیغام های خطای تو سیستم (به خصوص پیغام خطاهای مربوط به پایگاه داده و کد) رو به اصطلاح catch کنی و اونها رو به یک صفحه دلخواه ریدایرکت کنی. این صفحه البته مهمه که یه صفحه ایستا باشه یعنی یک صفحه HTML معمولی. بهتره که توش هیچ اطلاعاتی در مورد نوع و علت خطا ندیم و فقط بگیم مثلا درخواست با مشکل مواجه شد و نظایر اون !

منبع :
.http://zahra-hb.com
 
آخرین ویرایش توسط مدیر:

t0tem

عضو جدید
کاشکی تو Copy Paste کردن این مطلب یه ذره دقت می کردی یا حداقل یه ذره اطلاعاتت رو می بردی بالا. این متن نوشته ی یک آدمی بوده که هیچی در مورد هک نمی دونسته.
چندین و چندتا اشکال می شه از این متن گرفت :
این خطایی که می بینی (اون جور که من خوندم) مربوط می شه به مقداردهی اشتباه در متغیرها. مثلا برای یک متغیر Integer شما یک String وارد کنید.
پیدا کردن DataBase یک سایت برای یک هکر بسیار بسیار آسونه. البته دیگه می شه گفت که معمولا معمولا معمولا در سایت هایی که ویندوزی هستند SQL Server استفاده می شه و تو سایت های Linux ی از My SQL استفاده می شه.
اگه سایتی نتونه جلوی Injection یا همون تزریق رو بگیره پیدا کردن نام کاربری Admin سایت تقریبا آب خوردنه. می شه به راحتی تمام Table های DB رو کشید بیرون.
تا حالا ندیدم کسی با Brute Force پسورد یک سایت رو در آره. فکر کنم نزدیک به 1000 سال وقت و پهنای باند 1GB نیاز داره.

این وبلاگی که به عنوان منبع گذاشتی چقدر جالبه !!! همه جور مطلبی داره. سیاسی، علمی، فرهنگی، ورزشی، بچگانه، LOVE و .... ! :biggrin:

موفق باشید ...
 
آخرین ویرایش:

Drago

پیشکسوت فعال فناوری اطلاعات
کاربر ممتاز
آره وبلاگش تخصصي نيست,شخصيه.ولي نويسنده به نظر ميرسه نرم افزار ميخونه.
اطلاعات علمي و عملي من هم در حد يه دانشجوي ترم 2 توي منطقه محروم هست!
Integer و String رو شنيده بودم,Database رو هم از رو اسمش ميتونم حدس بزنم چيه,ديگه از اونجا به بعدش نامفهومه!!
هك كه سهله من تا حالا كامپيوتر يه نفرو بي اجازه روشن هم نكردم!!!
 

t0tem

عضو جدید
دوستان من یه توضیح کوچولو در مورد Injection بدم. اگه جایی اشتباه می کردم خوشحال می شم که اصلاح کنید.
بعضی مواقع ما می تونیم دستورهای (مثلا) SQL رو تو قسمت ورود به سایت بزنیم و Compiler یی که رو سرور نصب هست اون رو به عنوان اسم ورودی در نظر نگیره و به عنوان یک دستور SQL کامپایلش کنه. حالا فکر کنید شما این قدرت رو دارید که به یک سایت به زبانی که سایت قبول می کنه ، حمله کنید. مثلا ما می خوایم یه حمله ی SQL Injection داشته باشیم. ابتدا باید ببینیم که سایت به دستور های SQL حساس هست یا نه. یعنی آسیب پذیر هست یا نه. بعد دونه دونه جدول های Data Base سایت رو می کشیم بیرون. تو این جداول UserName ها و Password ها هم هستند حالا ما می دونیم که User ها و Pass ها کجا هستند. طبق گفته ی Drago اگه اسم یکی از Admin ها رو داشته باشیم کارمون آسون تره ولی اگه هکر هکر باشه مثل آب خوردن می تونه اسم تمام User هایی که Admin هستند رو پیدا کنه. (با استفاده از همون دستورهای SQL)
حالا به راحتی می تونه پسورد مناسب با اون User رو از Data Base بکشه بیرون. حالا فرض می کنیم که سایت یه ذره امنیت داره و پسورد ها رو Hash کرده یعنی روشون رمزگذاشته. یعنی خود پسورد رو تو DATA BASE ذخیره نکرده یعنی کد شده ی اون پسورد رو ذخیره کرده. حالا ما چی داریم ؟ یه User با سطح دسترسی Admin و یک پسورد کد شده . با استفاده از نرم افزار های موجود مثل cain می شه این رمز رو باز کرد ولی شاید طول بکشه و شاید هم اصلا موفق نشه. همچنین اگه باز هم هکر هکر باشه می تونه اون رمز رو دستی باز کنه و به پسورد اون User برسه.

متاسفانه اکثر سایت های ایرانی این کار رو نمی کنن و مثل هلو پسورد رو در اختیار شما می زارن.
Injection شما می تونه برای DATA BASE های دیگه مثل Oracle باشه. حتی برای PHP هم می تونیم Injection داشته باشیم. فرض کنید تو همین قسمت ارسال پاسخ ما می تونیم Code های PHP بنویسم که اگه جلوش گرفته نشه Compiler اون رو به عنوان یک کد PHP در نظر می گیره و Compile ش میکنه.

امیدوارم که تونسته باشم قدر به اطلاعاتتون اضافه کرده باشم
موفق باشید :gol::gol:
 

Drago

پیشکسوت فعال فناوری اطلاعات
کاربر ممتاز
من كه نفهميدم چي گفتي ولي به هر حال تشكر نموديم از فعاليت هاي شما.
 

Security

عضو جدید
کاشکی تو Copy Paste کردن این مطلب یه ذره دقت می کردی یا حداقل یه ذره اطلاعاتت رو می بردی بالا. این متن نوشته ی یک آدمی بوده که هیچی در مورد هک نمی دونسته.
چندین و چندتا اشکال می شه از این متن گرفت :
این خطایی که می بینی (اون جور که من خوندم) مربوط می شه به مقداردهی اشتباه در متغیرها. مثلا برای یک متغیر Integer شما یک String وارد کنید.
پیدا کردن DataBase یک سایت برای یک هکر بسیار بسیار آسونه. البته دیگه می شه گفت که معمولا معمولا معمولا در سایت هایی که ویندوزی هستند SQL Server استفاده می شه و تو سایت های Linux ی از My SQL استفاده می شه.
اگه سایتی نتونه جلوی Injection یا همون تزریق رو بگیره پیدا کردن نام کاربری Admin سایت تقریبا آب خوردنه. می شه به راحتی تمام Table های DB رو کشید بیرون.
تا حالا ندیدم کسی با Brute Force پسورد یک سایت رو در آره. فکر کنم نزدیک به 1000 سال وقت و پهنای باند 1GB نیاز داره.

این وبلاگی که به عنوان منبع گذاشتی چقدر جالبه !!! همه جور مطلبی داره. سیاسی، علمی، فرهنگی، ورزشی، بچگانه، LOVE و .... ! :biggrin:

موفق باشید ...

دقيقا درسته
 

Security

عضو جدید
آره وبلاگش تخصصي نيست,شخصيه.ولي نويسنده به نظر ميرسه نرم افزار ميخونه.
اطلاعات علمي و عملي من هم در حد يه دانشجوي ترم 2 توي منطقه محروم هست!
Integer و String رو شنيده بودم,Database رو هم از رو اسمش ميتونم حدس بزنم چيه,ديگه از اونجا به بعدش نامفهومه!!
هك كه سهله من تا حالا كامپيوتر يه نفرو بي اجازه روشن هم نكردم!!!

دوست عزيز ! با وجود كامپيوتر و اينترنت شما نبايد ديگه بگين كه از مناطق محروم هستين ؟
همه ماها در مناطق محروم علمي هستيم ....
 

Drago

پیشکسوت فعال فناوری اطلاعات
کاربر ممتاز
همي گويم و گفته ام بارها!(كه مهر است كيش دلدارها!!!!) من اطلاعات شبكه و علي الخصوص Hack ندارم.
اولا كه بيا تا محروميتو تا اعماق وجودت بفهمي!
دوما شما دوستان كه انقدر واردين چرا نميرين به اون وبلاگ نويس كه نشر اكاذيب ميكنه تذكر بدين؟! تو كامنت هاش همه تاييدش كرده بودن,برين حقايقو بازگو كنين,ملت رو از گمراهى دربيارين.
 

Similar threads

بالا