باگ اس کیو ال اینجکشن تزریق به پایگاه داده چیست

باگ اس کیو ال اینجکشن تزریق به پایگاه داده چیست

باگ اس کیو ال اینجکشن چیست؟

باگ SQLi (Sql injection)  یکی از مهم ترین باگ ها در ساختار نوع های مختلف دیتابیس میباشد که با سواستفاده از آن یک هکر می‌تواند تمامی اطلاعات روی پایگاه داده سایت را به دست آورد! بنا براین برای رفع این باگ ابتدا باید آن را شناخت و سپس نسبت به رفع باگ اس کیو ال اقدامات امنیتی اتخاذ نمود. تزریق به دیتابیس از حملات وب محسوب می شود و هکر می تواند دستورات مورد نیاز خود جهت ارتقاع سطح دسترسی را به دیتابیس ارسال کند. با این کار هر هدفی که مدنظر داشته باشد از جمله دریافت رمز های عبور، اطلاعات سایر کاربران و خارج کردن سایت از دسترس و بسیاری موارد دیگر قابل پیاده سازی خواهد بود.

این باگ در تمامی پایگاه های داده مانند اس کیو ال sql ، ماریا دیبی MariaDB و مای اس کیو ال و اوراکل وجود دارد. به صورت کلی در صورت کانفیگ های اشتباه در زبان های بک اند تحت وب نظیر ASP  و PHP به وجود می‌آید .

با توجه به اینکه عملا هک سایت با باگ sql injection امکان پذیر است. در مرحله اول یک هکر برای وجود این باگ مجبور است سایت طعمه را شناسایی کند. ابزار های بسیاری وجود دارند که سایت طعمه را اسکن نموده و به جستجوی باگ اسکیوال اینجکشن می پردازد.

روش های شناسایی باگ sql injection در وبسایت

برای شناسایی باگ اس کیو ال اینجکشن ابزار پیشنهادی ما Whitewidow است. این ابزار اپن سورس بوده و به زبان روبی Ruby نوشته شده است. این ابزار وظیفه اسکن سایت های آسیب پذیر که دارای باگ سی کو ال اینجکشن هستند را بر عهده دارد. روش کار این ابزار دورک نویسی و وارد کردن دورک در سایت است. برای استفاده از این ابزار نیاز به سیستم عامل لینوکس است. در ترمینال لینوکس عبارت زیر را اجرا نمایید.

git clone https://github.com/WhitewidowScanner/whitewidowt

 

با وارد کردن این دستور از گیت هاب نرم افزار اپن سورس Whitewidow دانلود می شود. پس از دانلود با زدن cd whitewidow وارد پوشته نرم افزار شوید.

با استفاده از Ruby ابزار اجرا می شود.

ruby whitewidow.rb

برای استفاده از ابزار می توانید از دورک های پیش فرض نرم افزار برای جستجوی سایت ها استفاده کنید در این صورت دستور سوییچ – d را وارد نمایید.

ruby whitewidow.rb -d

با این دستورات سایت های طعمه یا دارای باگ به شما نشان داده خواهد شد.

جلوگیری از باگ SQL Injection

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

  • بررسی دائمی ورودی ها و درخواست ها

در پایگاه های داده به روش های مختلف کاربر اطلاعات خود را وارد می کند و همین موضوع می تواند باعث ورود اطلاعات نامعقول و کدهای مخرب شود. با روش بررسی دانمی input و query ها از ورود اطلاعات نامناسب به پایگاه داده جلوگیری می شود. این query ها در پایگاه داده ثبت می شود و دارای ساختار ساده و شبیه به زبان انسان هستند. به همین دلیل یکی از روش های فوق العاده برای مبارزه با آن بررسی دائمی ورودی ها است و با کمک روش های خاص از ورود کاراکتر غیر مجاز جلوگیری می شود.

  • تعریف دسترسی های مختلف

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

  • علامت گذاری

دستکاری داده های کاربران از شیوه های مهمی است که هکر ها با استفاده از آن می توانند به اهداف خود برسند. با استفاده از هشدار ها و اعلانات می توانید کاربران را در جریان قرار دهید و در صورت نیاز عکس العمل های لازم را انجام بدهند.

  • به روز رسانی های متعدد

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

متد های باگ اس کیو ال اینجکشن

باگ اینجکشن دیتابیس دارای نوع های گوناگونی است که اسامی روش‌های معارف به شرح زیر می باشند:

متد UNION

متد Error Based

متد Blind Sql Injection

متد Boolean Based Blind

متد Time Based Blind

ترسناک ترین حمله تست نفوذ با sqlmap

Sqlmap  یک ابزار رایگان و اپن سورس است که به تشخیص و بهره بهرداری از باگ اس کیو ال اینجکشن می پردازد. این ابزار از پایگاه های داده متنوع زیر پشتیبانی می کند:

  • Mysql
  • Oracle
  • PostrageSQL
  • Microsoft Access
  • IBM DB2
  • SQLite
  • Firebird
  • Sybase
  • SAP MaxDB
  • HSQLDB

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

Sqlmap -h

سپس آدرس سایت مورد نظرتان را وارد نمایید:

Sqlmap

http://yournamewebsaite.com/datastore/search_get_by_id.php?id=4

با وارد کردن این دستور ابزار sqlmap اطلاعات کاملی شامل نوع سیستم عامل وب سرور، نسخه آپاچی، و پی اچ پی و نوع و نسخه پایگاه داده سایت مورد نظر را مشخص می کند.

برای استخراج نام پایگاه داده دستور -dbs را وارد کنید. این دستور باعث می شود نام دیتابیس سایت به شما داده شود. در نهایت برای تست پایگاه داده به وسیله سوییچ -d پایگاه داده هدف را انتخاب می کنیم.

جهت استخراج ستون های پایگاه داده -columns را وارد می کنیم که تمامی جداول موجود در دیتابیس را به همراه نامشان ارائه می دهد.

سوییچ -dump برای استخراج داده های جدول استفاده می شود. برای تعیین نام جدول از سوییچ -T استفاده می شود. تمامی اطلاعات و دیتاهایی که می خواهید در مسیر روت کالی لینوکس ذخیره می شود. برای دسترسی به این اطلاعات می توانید فایل CVS را با دستور cat مشاهده کنید.

 

نتیجه گیری

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

سحر علیزاده

نویسنده : سحر علیزاده

تا کنون نظری برای این مطلب ثبت نشده است. شما اولین نفر باشید

جهت ارسال نظر وارد اکانت خود شوید

آیا سوالی دارید؟

ما به شما کمک می کنیم تا امنیت وب سایت و اپلیکیشن خود را افزایش دهید.
09146717009