امروزه صفحات پویا بخش عمده ای از صفحات وب سایت ها را تشکیل می دهند که در بسیاری از موارد با استفاده از دستورات SQL، اطلاعات مورد نظر را پس از اعمال به پایگاه داده و با استخراج از آن، مورد استفاده قرار می دهند.SQL Injection یا همان تزریق کد دستورات SQL، روشی است که به یک فرد آشنا به دستورات SQL این اجازه را می دهد، که از طریق وارد کردن عبارات خاص SQL بجای داده های عادی، ساختار پایگاه داده مورد استفاده آن سایت را بدست آورد و آنگاه او قادر خواهد بود که نسبت به سرقت، تغییر و یا حذف اطلاعات موجود و نیز درج اطلاعات جعلی جدید اقدام کند علاوه بر این فرد مهاجم این امکان را می یابد که ضمن رخنه به درون سرور پایگاه داده، آن را از کار بیندازد.
عمدتاً توسعه گران وب، بیشتر تمرکز خود را بر روی موارد امنیتی سیستم عامل و یا WebServer میزبان برنامه های خود قرار دادند و کمتر به حفره های امنیتی موجود در کدهای خود توجه می کنند. یکی از مواردی که همواره می تواند سایت هایی را که از کاربر، داده ( Data ) دریافت می کنند را تهدید کند حملات تزریق کد در پایگاه داده یا تزریق دستورات SQL است.تزریق کد SQL روشی است که مهاجم را قادر می سازد تا دستورات SQL غیرمجاز را با بهره گیری از ضعف عدم کنترل داده های ورودی توسط برنامه نویس ( که از این ورودی ها در عبارات SQL پویای خودش استفاده می کند ) در پایگاه داده اجرا کند.
نکته قابل توجه و در خور اهمیت این است که تزریق دستوراتSQL از طریق Port شماره ۸۰ (همان پورتی که سرورهای وب سایت ها از آن برای ارسال و دریافت اطلاعات به مرورگر Clinet ها استفاده میکنند) انجام می شود و بنابراین فایروال ها و دیگر سیستم های امنیتی قادر به تشخیص و جلوگیری از آن نیستند
فهرست :
فصل اول مقدمه
شبکه
اینترنت
صفحههای وب
وب سایت
سرور
امنیت شبکه
انواع امنیت
نفوذ ( هک )
انواع روش های نفوذ
XSS
XSRF
Header Injection
SQL Injection
پایگاه داده
Table
Field
Record
دستور های SQL
دستور SELECT
دستور WHERE
دستور UPDATE
دستور DELETE
دستورINSERT
دستورUNION
دستور SUM
دستور Group BY
دستور Having
علامت سمی کالن
فصل دوم مفاهیم تزریق کد
تزریق کد SQL Injection
تزریق کد در صفحه ورود کاربران
تزریق کد در صفحه QueryString
سوابق روش SQL Injection
تست نفود وب سایت
روش کارکتری
روش منطقی
پیغام های خطا
دستورات تزریق کد SQL
بایپس ByPass
فصل سوم تزریق کد از طریق QueryString
بررسی آسیب پذیری سایت هدف
بدست آوردن تعداد ستونهای وب سایت
بدست آوردن ستونهای قابل نفوذ
بدست آوردن مشخصات پایگاه داده
بدست آوردن نام پایگاه داده
بدست آوردن ورژن PHP
بدست آوردن نام جداول پایگاه داده
بدست آوردن اسامی ستونهای جدول
بدست آوردن محتویات ستون
فصل چهارم تزریق در صفحه Login
سرقت اطلاعات
تغییر اطلاعات
تغییر اطلاعات یک رکورد
تغییر اطلاعات برخی رکوردها
تغییر اطلاعات همه رکوردها
درج اطلاعات جدید
درج رکورد جدید
درج ستون جدید
حذف اطلاعات
حذف یک رکورد
حذف تعدادی از رکوردها
حذف تمامی رکوردها
حذف ستونها
حذف جدول
حذف پایگاه داده
حمله به سرور پایگاه داده وب سایت بدست آوردن نام سرور
بدست آوردن ورژن سرور
بررسی آسیب پذیری سرور های SQL
نفوذ به درون سرور
فصل پنجم نتیجه گیری و روش های جلوگیری از حملات تزریق
استفاده از رویههای ذخیره شده در SQLServer
حذف کلمات و کارکترهای خطرناک
اطمینان از صحت نوع اطلاعات ورودی
تعیین طول مجاز برای اطلاعات ورودی
رمزنگاری اطلاعات حساس
عدم نمایش خطا در محیط Web
نتیجه گیری و پیشنهادات
منابع و مراجع