ورود کاربران

نام کاربری:     کلمه عبور:  
  مرا به یاد داشته باش

رمز عبور خود را فراموش کرده اید؟

ایمیل (نام کاربری):     کلمه عبور به ایمیل شما ارسال خواهد شد.
  گزارش ارزیابی سایت

امنیت سایت: SQL Injection

بازگشت به لیست
خلاصه ای از دستورالعمل
نـوع عملیـات :
اولویت انجـام : بالا
سختی اجراء : متوسط
متوسط امتیاز : 95
مرور دستورالعمل قبل از آنکه با این نوع حمله آشنا شویم ابتدا باید بدانیم که SQL چیست و هدف هکرها در این حمله چه می باشد . SQL (Structured Query Language) در واقع زبان استخراج اطلاعات از پایگاه داده ها می باشد . ساختار وب سایت ها چنین است که تمام اطلاعات، بسته به نوع سایت مانند نام کاربری و رمز عبور کاربران در یک پایگاه داده ذخیره می شود که با استفاده ازکدهای SQL تعبیه شده در درون صفحات برنامه نویسی شده وب سایت، کاربران می توانند بدون آنکه دخیل این روند باشند وارد وب سایت شوند.
شرح جزئیات
fiogf49gjkf0d

کاربران مورد هدف در این حمله اکثرا اشخاصی می باشند که حق افزودن و یا ویرایش اطلاعات و یا افزودن نام کاربری را بر روی وب سایت دارا می باشند.

در زیر نمونه ای از کد SQL   جهت استخراج نام کاربران از پایگاه داده مشاهده می شود:

SELECT * FROM users WHERE name = '"+userName+"';

 

اهداف هکرها برای حمله SQL Injection

  • دست یابی به نام کاربری و رمز عبور ادمین وب سایت و یا کاربری که حق نوشتن و ویرایش اطلاعات را داشته باشد
  • تغییر اطلاعات موجود بر روی وب سایت مانند(عکس،خبر،مطلب و غیره)
  • زیر سوال بردن اعتبار شرکت و یا سازمان مورد هدف با تغییر اطلاعات وب سایت
  • دستیابی به کدهای برنامه نویسی شده
  • افزود نام کاربری جدید به عنوان back door (نقطه نفوذی نا محسوس ) برای اعمال تغییرات آتی

 

روش مقابله با اینگونه حملات

 

  • استفاده از کدهای SQL  در سطح برنامه نویسی و تعبیه شده در کد صفحات وب سایت

 استفاده از کتابخانه Object-relational mapping  این امکان را به برنامه نویس می دهد که دیگر از کدهای SQL  در برنامه نویسی استفاده ننماید.کتابخانه ORM  نیز می تواند درخواستهای پایگاه داده را در سطوح بسیار امنی تولید نماید.

  • از بین بردن اتوماتیک کارکترهای مورد استفاده در زبان SQL  قبل از فرستادن درخواست به پایگاه داده در برنامه

به عنوان مثال function  (mysql_real_escape_string ()  ) از پایگاه داده از نوع mysqlدرخواستی را فراخوانی می کند که ابتدا پارامتر تایپ شده کاربر را از کاراکترهای (\x00, \n, \r, \, ', " and \x1a) می زداید و سپس درخواست را به سمت سرور پایگاه داده می فرستد.

  • ایجاد اسکریپتی در کدهای وب سایت جهت بررسی pattern درخواست های ورودی از کاربر
  • محدود کردن دسترسی وب سرور جهت دستیابی به اطلاعات پایگاه داده
  • تغییر نام کاربران ادمین به انواع اسامی  دیگر که هکر را گم راه نماید

 

روش حمله هکر ها

 

هکرها با روش سعی و خطا درخواست های خود را با زبان SQL  در قسمت ورود URL  وب سایت و یا در قسمت هایی که حق بار گذاری فایل وجود دارد اعمال می کنند.

از آنجایی که زبان استخراج اطلاعات از پایگاه داده حاوی کارکتر هایی مانند( "،;  =  و غیره ) می باشد می توان تا حدودی درخواستهای مخرب را تشخیص داد.

 

  نمونه ای از کد مخرب که می توان در قسمت بارگذاری فایلها اعمال کرد.

' or '1'='1


نظرات و پیشنهادات لطفا دیدگاه های خود را در ارتباط با مطلب فوق با ما در میان بگذارید.
ایمیل شما
 
موضوع
نظر / پیشنهاد
 
لطفاً کد موجود در تصویر راوارد کنید