رفتن به مطلب



iran rules jazbe modir
ADS mahak

Rednofozi

Hacking SQL Injection راهی برای حمله و نفوذ به سایت های اینترنتی

پست های پیشنهاد شده

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

در این روش مهاجم سعی می کند با وارد کردن دستورات sql در سایت به

پایگاه داده دسترسی پیدا کرده و اقدام به ویرایش ،حذف و بازیابی داده های

مورد نظر خود از بانک اطلاعاتی کند.

در این مقاله به چگونگی مقابله با این حمله به صورت اجمالی می پردازیم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

telegram channel   jazbe modir

صفحه Login یک سایت را در نظر بگیرید.معمولا برنامه نویسان از عبارات پویا ی SQL برای بررس

ی صحت وجود کاربر مجاز جهت ورود به سایت استفاده می کنند.
query متداول select برای ورود به سایت :

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


این query بر اساس مقادیری که از دو textbox username, password می گیرد،وجود کاربر را بررسی می کند.
حال اگر کاربر به جای IDو Password (یا حتی فقط ID ) عبارت sara’ or 1=1- - را وارد کند به راحتی از صفحه Login سایت عبور خواهد کرد.(کلمه sara در اینجا username است.)

 

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


از آنجایی که "1=1" همواره برقرار است،بخش شرط دستور خنثی میشود و معادل این query خواهد شد: Select * from Users

وچون در SQL برای بیان توضیحات از"--" استفاده می شود ، با استفاده از این عبارت در اینجا ،قسمت بعدی عبارت SQL نادیده گرفته می شود .
تا اینجای کار ،نفوذ تنها منجر به بازیابی اطلاعات شد.حال به مثال زیر توجه کنید:

 

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

این query شامل دو دستور است که با ";" از هم جدا شده اند. دستور دوم باعث حذف جدول users خواهد شد!

تزریق کد sql در query string:

Query string روش متداولی برای نمایش پویای اطلاعات در سایت ها می باشد.به این لینک توجه کنید:

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

با استفاده از این عبارت،محتوای مقاله ای نمایش داده می شود که artID آن برابر 20 است. حال اگر مهاجم عبارت زیر را وارد کند:
 

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


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

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

و نتیجه نمایش همه مقالات جدول Article خواهد بود.


راه های مقابله با Sql Injection :

حال به بررسی روش های مقابله با حمله های Sql Injectionمی پردازیم.
• تعیین نوع داده ای مناسب برای فیلدهای جداول دیتابیس.

به طور مثال اگر محتوای فیلدی تنها عدد می باشد،نوع آن فیلد را int در نظر بگیریم نه string.زیرا در این صورت مهاجم نمیتواند هر ترکیبی از کد های مخرب را برای نفوذ وارد کند.

اعتبار سنجی و بررسی مقادیر ورودی

در این روش سعی می شود تا از ورود کاراکترهای غیر مجاز مانند "-- ; ‘ =" از سوی کاربر جلوگیری نمود.

استفاده از پارامترها و پروسیجرهای ذخیره شده

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

مثال استفاده از روش پارامتر:

 

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


• استفاده از روش String.Format

در این روش نیز مانند روش پارامتر ورودی از نظر نوع ارسال داده و طول مجاز بررسی می شود.
مثال استفاده از روش String.Format :

 

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


• دادن سطح دسترسی محدود به کاربران،در اجرای دستورات sql


• تعداد کاراکترهای ورودی کاربر را محدود کنید.

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

• پرهیز از نمایش دادن خطاهای برنامه به کاربر

خطاهای حاصل از دیتا بیس حاوی مشخصاتی از دیتابیس مانند نام جداول ،فیلدها یا نام دیتابیس و... هستند و مهاجمین گاهی با تست کردن ورودی ها،از این خطاها برای نفوذ در بانک اطلاعات استفاده می کنند.
بنابراین بهتر است تا صفحه ای برای نمایش خطا ساخته و در زمان بروز این خطا ها آن صفحه را نمایش دهید.
برای این کار،پس از ساخت صفحه خطا،در فایل web.config مقدار تگ CustomError را با "on" تنظیم کنید تا جزئیات خطاهای پیش بینی نشده نمایش داده نشود. 
تگ های زیر را قبل از تگ </configuration> وارد کنید.

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

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   بازگردانی قالب بندی

  حداکثر استفاده از ۷۵ شکلک مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری

  • مطالب مشابه

    • توسط  vahyar
      سلام دوستان اهل فن 
      وقت بخیر خسته نباشید 
      سوال مهمی داشتم لطفا کمکم کنید
      من سایتی دارم 1 ماهی میشه راه اندازی کردم 
      اما تقریبا 3 هفته ای میشه  در سرچ کنسول با برخی کلمات کلیدی خارجی رتبه گرفته 
      و وقتی روی نتیجه کلیک میکنی ریدایرکت میشه به یک فروشگاه اینترنتی خارجی
      ایندکس این صفحات متاسفانه به 22000 صفحه رسیده 
      من قبلا سایت داشتم همچین مشکلی به هیچ عنوان نداشتم طراحان میگن مشکل از سایت نیست
      هاستینگ میگه مشکل از سرور نیست 
      از افزونه خاصی هم استفاده نکردم
      لطفا توروحدا کمکم کنید
      ممنون میشم دعاتون میکنم
    • توسط  DeCoDeR
      درود
       
      بنده ستون پسورد های دیتابیسم رو از اول بصورت هش شده ذخیره نکردم
      خواستم بدونم امکانش هست که الان تمام پسورد هایی که توی یک ستون هستند رو باهم هش کنم؟
    • توسط  persiansoft
      یک شرکت در حوزه امنیت در مازندران شهر ساری به صورت حضوری قصد همکاری با افراد واجد شرایط را دارد

      ▫️آشنایی با تست نفوذ و ایمن سازی وب ، اپلیکیشن و شبکه های اجتماعی
      ▫️آشنایی با اصول مدیریت و ایمن سازی سرور های لینوکسی


      دارای روحیه کار تیمی و توانمندی یادگیری تکنولوژی های جدید برای جذب افراد جز الزامات اولیه می باشد.
       
  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...