به "وبلاگ فالنیک ( ایران اچ پی)" خوش آمدید    |   وبسایت فالنیک (ایران اچ پی)
امروز جمعه ۴ تیر ۱۴۰۰ - تماس با فالنیک : 8363-021

sql injection چیست؟

sql injection چیست؟

در این مقاله sql injection را بررسی می‌کنیم و درباره نتایج این حمله، انواع و روش‌های مقابله با آن صحبت می‌کنیم.

injection چیست؟

حملات injection به دسته‌ای از حملات و هک‌ها گفته می‌شود که در آن مهاجم، ورودی غیرقابل اعتماد وارد برنامه می‌کند. این ورودی‌ها روی بخشی از دستور یا کوئری تاثیر می‌گذارد و اجرای آن برنامه را تغییر می‌دهد.

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

برخی از انواع حملات injection عبارتند از:

  1. Code injection
  2. CRLF injection
  3. Cross-site Scripting (XSS)
  4. Email Header Injection
  5. Host Header Injection
  6. LDAP Injection
  7. OS Command Injection
  8. XPath injection
  9. SQL Injection (SQLi)
پیشنهاد مطالعه

مفهوم sql injection چیست؟

حالا ببینیم باگ sql چیست. sql injection یا sqli آسیب امنیتی وب است که به هکر اجازه مداخله در کوئری های دیتابیس را می‌دهد. مثلا هکرها دیتایی که در حالت عادی دسترسی به آن نیست را می‌بینند. ممکن است دیتایی باشد که متعلق به کس دیگری است یا دیتایی باشد که فقط خود برنامه امکان دسترسی به آن را دارد. در بسیاری موارد مهاجم این دیتا را پاک می‌کند یا تغییر می‌دهد در نتیجه روی محتوا و یا رفتار برنامه تاثیر می‌گذارد.

هر وب سایت و برنامه وبی که از دیتابیس sql مثل MySQL و Oracle و SQL Server استفاده می‌کند در معرض آسیب این حمله است. Sql زبان کوئری‌ها است که برای مدیریت اطلاعات ذخیره شده در دیتابیس‌ها طراحی شده است. پس با استفاده از آن می‌توان دسترسی و اصلاح و حذف اطلاعات را انجام داد. حتی می‌توان از دستورات sql برای اجرای برخی دستورات سیستم عاملی استفاده کرد. در نتیجه حمله sql injection موفق، عواقب زیادی دارد.

نکته مهم این است که باگ sql اصلا به دلیل ضعف sql نیست بلکه برنامه‌نویس‌ها با اشتباهات برنامه‌نویسی راه را برای هکرها و انجام تزریق sql هموار می‌کنند.

هکر ابتدا به دنبال ورودی‌های کاربری آسیب‌پذیر در صفحه وب یا برنامه وب می‌گردد چون بدین ترتیب می‌تواند مستقیم وارد کوئری sql شود. هکر، محتوای ورودی که malicious payload نامیده می‌شود و کلید اصلی حمله است را آماده می‌کند. پس از اینکه هکر این محتوا را وارد می‌کند، دستورات SQL مخرب در دیتابیس اجرا می‌شود.

در SQL Injection امکان اجرای SQL statement های مخرب فراهم می‌شود. این استیت منت‌ها کنترل دیتابیس سرور پشت برنامه وب را به دست می‌گیرند. هکرها از SQLi استفاده می‌کنند تا به صفحه وب، برنامه وب و بازیابی محتوای کل دیتابیس sql دست یابند تا بتوانند رکوردهای دیتابیس را اضافه و اصلاح و حذف کنند.

 

واحد خدمات لپ تاپ، کامپیوتر و بورد فالنیک
تعمیرات لپ تاپ، تبلت، کامپیوتر، All-in-One، بورد (Board) و تعویض انواع پورت (Port) و چیپست (Chipset) خود را به صورت تخصصی با تجهیزات پیشرفته، به فالیک بسپارید. برای ثبت تیکت تعمیر، کلیک کنید.
درخواست تعمیر کامپیوتر و لپ تاپ

 

تاثیرات حمله sql injection موفق چیست؟

برخی مواقع مهاجم از انواع حملات  sql injectionاستفاده می‌کند تا سرور و دیگر زیرساخت‌ها را از سرویس خارج کند یا حمله دایس – DoS انجام دهد. همچنین دسترسی به سیستم عامل باعث می‌شود هکر بتواند به شبکه داخلی شما نفوذ کند. برای استفاده از خدمات تعمیر سرور hp و ارتقای آن روی لینک بزنید.

یک حمله موفق sql injection دسترسی کامل به تمام اطلاعات دیتابیس سرور را به هکر می‌دهد و روی دسترسی‌های غیرمجاز به اطلاعات حساس تاثیر می‌گذارد مثلا پسوردها، اطلاعات کارت اعتباری، اطلاعات مشتری و اطلاعات شخصی کاربر. بسیاری از هک‌های اطلاعات محرمانه در سال‌های اخیر با استفاده از انواع حملات  sql injectionانجام شده است. برخی مواقع، مهاجم به سیستم های دولتی نفوذ می‌کند و در اصطلاح بک دور دارد در نتیجه مدت‌ها می‌تواند از اطلاعات استفاده کند بدون اینکه کسی متوجه شود.

هکر با تغییر در رکوردهای دیتابیس به اهداف خود می‌رسد مثلا در برنامه‌های مالی، انتقال وجه بین حساب‌ها انجام می‌دهد. با حذف رکوردی‌های دیتابیس و حتی جدول‌های آن، ممکن است برنامه از دسترس خارج شود تا زمانی که دیتابیس با استفاده از بکاپ‌ها ری‌استور شود. حتی ممکن است با بکاپ‌ها هم کامل نتوان دیتای کامل را به دست آورد.

پیشنهاد مطالعه

انواع sql injection

انواع حملات sql injection عبارتند از:

  1. UNION
  2. Error Based
  3. Blind
  4. تزریق sql کور به دو روش Boolean و Time

نقص‌های برنامه‌نویسی، حفره‌های امنیتی وب سایت و نرم‌افزار، امکان ترزیق کد توسط هکر را فراهم می‌کند. ضعف در برنامه‌نویسی، استفاده نادرست از متغیرهای کنترل نشده، و استفاده از دستورات نامطمئن و غیراصولی، کامپایلر را به سمت اجرای دستورات غیرمجاز سوق می‌دهد. به مثال زیر دقت کنید.

انواع sql injection
نقص‌های برنامه‌نویسی، حفره‌های امنیتی وب سایت و نرم‌افزار، امکان ترزیق کد توسط هکر را فراهم می‌کند.

کوئری‌های Select دارای قسمت‌های زیر هستند:

  1. دستور Select: انتخاب ستون‌های مورد نظر
  2. From: کدام جدول برای انتخاب ستون‌های مورد نظر استفاده شود.
  3. Where: شروط کوئری که تزریق sql از این طریق انجام می‌شود.
  4. عبارات و پارامترهای دیگر

اگر هکر در فیلد یوزرنیم عبارت ۱۰۵ OR 1=1 را وارد کند، کوئری select به شکل زیر خواهد بود:

SELECT * FROM Users WHERE UserId = ۱۰۵ OR ۱=۱;

چون همیشه ۱=۱ است، تمام ردیف‌های جدول Users را برمی‌گرداند.

اگر از دستور زیر استفاده شود هکر با یک دستور ساده، توانسته به تمام نام‌های کاربری و پسوردها دست یابد:

SELECT UserId, Name, Password FROM Users WHERE UserId = ۱۰۵ or ۱=۱;

اگر هکر در فیلد پسورد عبارت password’ OR 1=1 را وارد کند، کوئری select به شکل زیر خواهد بود:

SELECT id FROM users WHERE username='username' AND password='password' OR 1=1'

چون همیشه ۱=۱ است، در نتیجه اولین id از جدول Users را برمی‌گرداند و اصلا مهم نیست username و password چی هستند. معمولا اولین کاربر در جدول کاربران، کاربر ادمین است. بدین ترتیب هکر نه تنها به دیتابیس دسترسی یافته است بلکه امتیازات ادمین را هم دارد.

پیشنهاد مطالعه

جلوگیری از حمله sql injection

برای جلوگیری از حمله sql injection و مقابله با باگ موارد زیر را در نظر بگیرید:

  1. اعتبارسنجی ورودی، افزایش امنیت فرم‌ها برای جلوگیری از ورود کوئری غیرمجاز و بررسی دایمی اطلاعات ورودی قبل از ارسال آنها به دیتابیس به عنوان Query مثلا اینکه کاراکترهای غیرمجاز نداشته باشد یا ورودی مستقیم نگیرد.
  2. ایجاد چند کاربر با دسترسی های مختلف به دیتابیس
  3. توجه کنید پیغام‌های خطایی که به کاربر نمایش داده می‌شود. مثلا “نام کاربری نمی‌تواند شامل اعداد باشد” هکر را آگاه می‌کنید که نباید در نام کاربری اعداد وارد کند. طوری این پیغام‌ها را طراحی کنید که نقاط ضعف سایت برای هکر نمایان نشود.
  4. آپدیت محتوای سایت به جدیدترین نسخه
  5. بررسی منظم دسترسی کاربران به دیتابیس. این کار باعث می‌شود اگر کاربری هک شده باشد، متوجه شوید و دسترسی آن را قطع کنید.
  6. افزایش امنیت سایت و هاست و دیتابیس آن
  7. استفاده از پسوردهای قوی و پیچیده برای دیتابیس

 

مشاوره و طراحی شبکه در فالنیک (ایران اچ پی)
فالنیک با تکیه بر دانش، تخصص و تجربه متخصصین خود، نیازهای مشتریان خصوصی و دولتی خود را بررسی و تحلیل می‌کند و خدمات خود را در زمینه مشاوره، طراحی، پیاده‌سازی، نظارت و پشتیبانی شبکه‌های کامپیوتری ارایه می‌دهد.
دریافت مشاوره طراحی شبکه


نویسنده :

مطالب مرتبط با سرور و شبکه

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

عضویت در خبرنامه سرور فالنیک (ایران اچ پی)

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

تبریک، شما با موفقیت در خبرنامه عضو شدید.

.swin-sc-title.style-2 .title span:after