wait لطفا صبر کنید
تهران: 88019001-021 قم: 32906868-025

29 اسفند 1397
صفحه اصلی مقالات
ziarati 9953 بازدید 4 اسفند 1397 12:05:00

حملات SQL Injection (بخش اول)

در حملات تزریق (Injection) همانطور که از نامشان مشخص است، کاربر بدخواه با تزریق کد و یا کوئری به برنامه های وب به اهداف بدخواهانه خود دست می یابد. در حملات تزریق SQL نیز، کاربر بدخواه به جای ارسال داده های معتبر، داده های کوئری ( SQL Query ) را به سرور وب ارسال کرده، سرور وب و پایگاه داده آن را مورد حمله قرار داده و به اطلاعات محرمانه آن دست می یابد. کاربر بدخواه قادر به انجام اعمال مخربی چون ورود غیر مجاز به سیستم، دستیابی و یا تغییر اطلاعات موجود در پایگاه داده و ... خواهد بود.

در حملات تزریق همانطور که از نامشان مشخص است، کاربر بدخواه با تزریق کد و یا کوئری به برنامه های وب به اهداف بدخواهانه خود دست می یابد. در حملات تزریق SQL نیز، کاربر بدخواه به جای ارسال داده های معتبر، داده های کوئری (SQL Query) را به سرور وب ارسال کرده، سرور وب و پایگاه داده آن را مورد حمله قرار داده و به اطلاعات محرمانه آن دست می یابد. کاربر بدخواه قادر به انجام اعمال مخربی چون ورود غیر مجاز به سیستم، دستیابی و یا تغییر اطلاعات موجود در پایگاه داده و ... خواهد بود.

کاربر بدخواه می تواند از پارامترهای موجود در صفحات وب به عنوان راه نفوذ استفاده کند. به عنوان مثال در صفحه ورود با کنترلهای نام عبور و یا کلمه عبور. بدین ترتیب که به جای وارد کردن نام عبور، داده هایی از اسکیوال را وارد کرده که موجب انجام عملیاتی در پایگاه داده گردد. به عنوان مثال تصویر زیر را در نظر بگیرید: با قرار دادن کوئری "’OR 1=1--" در بخش username از صفحه ورود، کوئری موجود در کد برنامه وب به صورت زیر (بخش سوم از تصویر) تغییر کرده و به کاربر بدخواه اجازه نفوذ می دهد.

 
 
کاراکترهای -- (کاراکترهای توضیحات) باعث می گردد که مابقی دستور SQL کامنت گردد. علاوه بر آن قسمت مهم ورودی که شرط همیشه درست (or 1=1) می باشد باعث می گردد دستور با شرط درست اجرا شده و کاربر بدون نیاز به پسورد وارد سیستم گردد.
 علاوه بر مثال بالا، کاربر بدخواه ممکن است مقادیر زیر را هم وارد کند. مقادیر زیر را در دستور SQL بالا بگذارید تا ببینید چه اتفاقی می افتد:

·         abc' or 1=1

·         abc'; DROP TABLE users (جدولی حذف می شود.)

·         abc' or system_user = 'sa'  (اگر یوزر sa باشد که معمولا هست شرط or درست می گردد)

·         abc'; exec xp_cmdshell('fdisk.exe') (فرمت کردن دیسک)

·         …

این دسته از حملات خیلی گسترده هستند. الگوهای متعددی از این حملات را می توان در سایت های معتبری چون OWASP پیدا کرد.

داده های حمله ارسالی ممکن است به صورت دستی و از طریق پارامترهای صفحات وب به برنامه وب تزریق گردند.

همچنین امروزه ابزار بیشماری برای تست و یا نفوذ به برنامه های وب به بازار آمده اند. این ابزارها نیز همانند دیگر ابزارهای امنیتی یک شمشیر دو لبه می باشند و همانطور که ابزاری برای کمک به تست نفوذ به سیستم ها و نرم افزارها می باشند، می توانند مورد استفاده حمله کنندگان قرار گرفته و حملات به برنامه های وب را نیز به صورت اتوماتیک انجام دهند. به عنوان مثال ابزار BurpSuit و havij از ابزاری هستند که به صورت اتوماتیک داده های حمله تولید کرده و به برنامه وب مورد نظر ارسال می کنند.
 

نظرات کاربران

Parameter:159!model&339 -LayoutId:339 LayoutNameالگوی متنی مطالب+