تزریق اسکیوال و اقدامات متقابل

منتشر شده در دسته : هک اخلاقی

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

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

SQLCommand = “SELECT Username FROM Users WHERE Username = ‘”
SQLCommand = SQLComand & strUsername
SQLCommand = SQLComand & “‘ AND Password = ‘”
SQLCommand = SQLComand & strPassword
SQLCommand = SQLComand & “‘”
strAuthCheck = GetQueryResult(SQLQuery)

هکر می تواند با استفاده از آسیب پذیری موجود در کد اسکیو ال نام کاربری و رمز عبور زیر را در کد زیر وارد کرده و در کد اسکیو ال تزریق کند :

Username: kimberly
Password: graves’ OR ”=’

حال با اجرای دستور بالا در فرم اپلیکیشن احتمالا دستور زیر را ایجاد می کند :

SELECT Username FROM Users
WHERE Username = ‘kimberly’
AND Password = ‘graves’ OR ”=”

این یک نمونه از تزریق اسکیو ال بود . این دستور بالا همه سطرها از کاربران پایگاه داده را بر می گرداند . (صرف نظر از اینکه آیا نام کاربری Kimberly و پسورد graves صحیح هستند یا نه ) و دلیل آن هم وجود عبارت OR در فرمان است .

اقدامات متقابل تزریق اسکیوال

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

خوشحال می شویم دیدگاههای خود را در میان بگذارید * فرصت پاسخگویی به سوالات در بلاگ وجود ندارد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *