حملات SQL Injection و نحوه صورت گرفتن این حملات

11 مرداد 1396
نویسنده :  

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

SQL Injection معمولا هنگامی رخ میدهد که شما از کاربر برای ورود به صفحه شخصی وبی کاربر نام کاربری و رمز عبور را حساب کاربری را در خواست کند که در این حمله هکر در صفحه ورودی برخی کد های SQL را وارد می کند کد های در پایگاه داده اجرا می شود.

به مثال زیر دقت کنید که یک عبارت Select را با اضافه کردن یک متغییر (txt Userid) به یک رشته انتخاب ایجاد می کند متغییر از ورودی کاربر (GetRequeststring) گرفته شده است.

sql injection

تزریق کد همیشه درست "1=1"

به مثال بلا دوبار نگاه کنید هدف اصلی کد ایجاد یک بیانیه ای SQL برای انتخاب یک کاربر با یک شناسه داده شده است حال اگر هیچ چیزی برای جلوگیری از کاربر در صورت وارد کردن اطلاعات اشتباه تنظیم نشده یاشد کاربر می تواند اطلاعات ورودی هوشمند دستوری وارد کند مانند :

 

که در نتیجه این ورودی به شکل SQL Statement به صورت زیر خواهد بود :

دستور SQL بالا معتبر است و تمام ردیف ها از جدول User باز می کند زیرا کد شرط OR 1=1  همیشه True  میباشد. SQL Statement اشاره شده در بالا همانند دستور زیر است.

که یک هکر ممکن است این توانایی را کسب کند به تمام حساب های کاربری و کلمه عبور آنها دسترسی یابد.

تزریق کد همیشه درست "="

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

sql injection

درنتیجه :

هکر به راحتی می تواند حساب کاربری و رمز آنها را تنها با وارد کردن “or””=” در محل نام کاربری و یا رمز عبور به شکل زیر :

sql injection

این ورودی ها را سرور دریافت و آن را به شکل فرم دستوری SQL معتبر تبدیل می کند.

 فرم دستوری بالا کاملا معتبر می باشد که باعث می شود تمام ردیف های جدول User برگردانده شود زیرا که “Or”=” همیشه درست است.

SQL Injection بر اساس SQL Statement ها :

برای حفاظت از وب سایت در برابر حملات SQL Injection شما می توانید از پارامترهای SQL استفاده کنید. پارامترهای SQL عبارتند از مقادیری که به صورت کنترل شده به یک SQL Query در زمان اجرا اضافه می شود هستند.

توجه داشته باشد که پارامترها در SQL با نشان @  نشان داده شده اند. موتور SQL هر پارامتر را بررسی می کند تا اطمینان حاصل شود که ستون آن درست است و به معنای واقعی و نه به عنوان بخشی از SQL اجرا می شود. در زیر مثال دیگری آورده شده است :

مثال ها :

مثال های زیر نشان میدهد که چگونه در برخی از زبان های رایج پارامتری را ایجاد کنید.

INSERT INTO STATEMENT IN ASP.NET:

INSERT INTO STATEMENT IN ASP.NET:

11497 تعداد بازدید
علی سالم پناه

متخصص شبکه و امنیت شبکه

مهندسین شبکه افزار سایان

  • اهواز - خیابان وهابی خ 19 شرقی پلاک 20
  • 061-33386011-13
  • 061-33374556
  • spambots

پیشنهادات خود را با ما در میان بگذارید

  ایمیل ارسال نشد   ایمیل با موفقیت ارسال شد