آسیب پذیری sql injection
آسیب پذیری (SQLI) SQL Injection
حمله SQL Injection یا SQLI به عملیاتی اطلاق میگردد که در آن هکر از طریق ورودیهای وب سایت نظیر فرمها، آدرسهای URL و… اقدام به تزریق کدهای SQL به سایت نموده و در پی آن سعی میکند تا به اطلاعات مهم وب سایت دسترسی پیدا کرده و یا آنها را دچار تغییر نماید. از آنجایی که اکثر وب سایتها امروزه از بانکهای اطلاعاتی برای نگهداری اطلاعاتشان استفاده مینمایند، این حمله یکی از رایجترین حملات هکرها بر روی سایتهای اینترنتی به حساب می آید.
در صورت موفقیت آموز بودن عملیات هکر، دور از ذهن نخواهد بود که وی قادر خواهد بود تا تمام کنترل وب سایت را به دست گرفته و مشکلاتی جدی را برای مالک وب سایت به دنبال آورد.
چه خطرهایی به دنبال حملات SQL Injection ما را تهدید خواهد نمود؟ در زیر به برخی از آنها اشاره میکنیم:
- دسترسی غیر مجاز به اطلاعات محرمانه کاربران سایت و حساب کاربری آنها
- تغییر و حذف اطلاعات ذخیره شده در بانکهای اطلاعاتی نظیر تراکنشهای مالی، اخبار و اطلاعات شخصی
- اجرای دستورات در سطح سیستم عامل در صورت عدم رعایت تنظیمات دسترسی مناسب
- پخش شدن اطلاعات کاربران سایت و دورههای موجود در سایت
نمونههای SQL Injection
طیف گستردهای از آسیب پذیریها، حملات و تکنیکهای تزریق وجود دارد که برخی از نمونههای رایج آن عبارتاند از:
- بازیابی دادههای پنهان: یک کوئری را برای برگرداندن نتایج اضافی تغییر میدهید.
- خراب کردن منطق یک برنامه: یک کوئری را برای تداخل با منطق برنامه تغییر میدهید.
- حملات UNION: در آن میتوانید دادهها را از جدولهای پایگاه داده مختلف بازیابی کنید.
- بررسی پایگاه داده: در آن میتوانید اطلاعات مربوط به نسخه و ساختار یک پایگاه داده را استخراج کنید.
- تزریق کور SQL یا همان (Blind SQLI): نتایج کوئریهایی که شما کنترل میکنید، در پاسخهای برنامه برگردانده نمیشوند.
چگونه آسیب پذیریهای SQL Injection را شناسایی کنیم؟
آسیب پذیریهای SQL Injection را میتوان به صورت دستی و با استفاده از مجموعهای از تستها در برابرتمام نقاط ورودی در برنامه شناسایی کرد؛ که معمولا شامل موارد زیر است:
1. ارسال نقل قول تکی ‘ و جستجوی خطاها و دیگر ناهنجاریها.
2. ارسال شرایط Boolean مانند OR 1=1 و OR 1=2 و جستجوی تفاوت در پاسخهای برنامه.
3. ارسال payloadهای طراحی شده برای ایجاد تاخیر زمانی هنگام اجرا در کوئری SQL و جستجوی تفاوت زمان صرف شده برای پاسخ.
4. ارسال payloadهای OAST طراحی شده برای راه اندازی یک تعامل شبکه خارج از باند هنگام اجرا در یک کوئری SQL و نظارت بر تمام تعاملهای حاصل.
دیدگاهتان را بنویسید