logo

test' AND SLEEP(3) چیست؟-- | یک نقص فنی امنیتی

By: WEEX|2026/03/19 03:37:44
0

آشنایی با رشته ورودی

رشته‌ی "test' AND SLEEP(3)--" یک نمونه‌ی کلاسیک از تزریق SQL است. در دنیای امنیت سایبری از سال ۲۰۲۶، این توالی خاص از کاراکترها توسط محققان امنیتی و مهاجمان برای آزمایش اینکه آیا پایگاه داده یک برنامه وب در برابر دستورات غیرمجاز آسیب‌پذیر است یا خیر، استفاده می‌شود. ورودی طوری طراحی شده است که از یک فیلد داده استاندارد خارج شود و پایگاه داده backend را مجبور کند عملیات خود را برای مدت زمان مشخصی متوقف کند.

تجزیه و تحلیل نحو

برای درک چگونگی عملکرد این سیستم، باید به تک تک اجزای آن نگاه کرد. بخش اول، test' ، برای بستن یک رشته تحت‌اللفظی در یک پرس‌وجوی SQL در نظر گرفته شده است. بیشتر برنامه‌های وب، ورودی کاربر را داخل تک کوتیشن قرار می‌دهند. با اضافه کردن یک نقل قول واحد، مهاجم از ناحیه ورودی مورد نظر "گریز" می‌کند. سپس از عملگر AND برای افزودن یک شرط جدید به کوئری موجود در پایگاه داده استفاده می‌شود. در نهایت، علامت -- در انتها یک نشانگر توضیح در SQL است که به پایگاه داده می‌گوید بقیه‌ی پرس‌وجوی برنامه‌نویسی‌شده‌ی اصلی را نادیده بگیرد و از خطاهای نحوی که ممکن است سیستم را از نفوذ مطلع کند، جلوگیری کند.

نقش خواب

تابع SLEEP(3) یک دستور با تأخیر زمانی است. وقتی توسط یک پایگاه داده MySQL اجرا می‌شود، به سرور دستور می‌دهد که دقیقاً سه ثانیه قبل از بازگشت پاسخ منتظر بماند. در یک برنامه‌ی سالم و امن، ورودی‌ای مانند این باید به عنوان متن ساده در نظر گرفته شود و هیچ تاثیری بر سرعت پردازش سرور نداشته باشد. با این حال، اگر برنامه آسیب‌پذیر باشد، سرور در واقع متوقف می‌شود. این تأخیر به عنوان یک «سیگنال» برای شخصی که سیستم را آزمایش می‌کند، عمل می‌کند که با موفقیت کنترل موتور پایگاه داده را به دست گرفته است.

تزریق کورکورانه SQL توضیح داده شد

این payload خاص تحت عنوان «تزریق کور SQL» طبقه‌بندی می‌شود. برخلاف تزریق SQL سنتی، که در آن پایگاه داده ممکن است داده‌های حساس (مانند رمزهای عبور یا ایمیل‌ها) را مستقیماً به صفحه نمایش برگرداند، تزریق کور هیچ داده قابل مشاهده‌ای ارائه نمی‌دهد. مهاجم نمی‌تواند نتایج جستجوی خود را در مرورگر ببیند. در عوض، آنها باید اطلاعات را بر اساس رفتار سرور استنباط کنند - به طور خاص، مدت زمان پاسخ دادن آن.

تکنیک‌های استنتاج مبتنی بر زمان

تزریق SQL کورکورانه مبتنی بر زمان کاملاً به ساعت متکی است. اگر مهاجمی دستور SLEEP(3) را ارسال کند و صفحه فوراً بارگیری شود، متوجه می‌شود که تزریق ناموفق بوده است. اگر بارگذاری صفحه دقیقاً سه ثانیه بیشتر از حد معمول طول بکشد، آنها متوجه می‌شوند که تزریق موفقیت‌آمیز بوده است. با استفاده از منطق پیچیده‌تر، مانند «اگر حرف اول رمز عبور مدیر 'A' باشد، آنگاه SLEEP(3)»، مهاجمان می‌توانند به آرامی و تنها با مشاهده تأخیرهای پاسخ، کل پایگاه‌های داده را یک به یک استخراج کنند.

چرا همچنان خطرناک است؟

حتی در سال ۲۰۲۶، این آسیب‌پذیری‌ها به دلیل کدهای قدیمی و چرخه‌های توسعه سریع همچنان پابرجا هستند. در حالی که چارچوب‌های مدرن اغلب شامل محافظت‌های داخلی هستند، APIهای سفارشی یا یکپارچه‌سازی‌های پایگاه داده قدیمی‌تر ممکن است هنوز ورودی کاربر را مستقیماً به رشته‌های SQL الحاق کنند. از آنجا که در طول بررسی اولیه هیچ پیام خطایی نمایش داده نمی‌شود و هیچ داده‌ای به طور قابل مشاهده‌ای سرقت نمی‌شود، این آسیب‌پذیری‌ها می‌توانند از دید ابزارهای نظارتی استاندارد که فقط به دنبال گزارش‌های «دسترسی ممنوع» یا «خطای نحوی» هستند، پنهان بمانند.

اهداف مشترک پایگاه داده

اگرچه تابع ()SLEEP مختص MySQL و MariaDB است، تقریباً هر سیستم پایگاه داده‌ی اصلی یک دستور معادل برای آزمایش مبتنی بر زمان دارد. متخصصان امنیت از این تغییرات برای شناسایی نوع پایگاه داده‌ای که پشت رابط وب اجرا می‌شود، بدون دسترسی مستقیم به پیکربندی سرور، استفاده می‌کنند.

سیستم پایگاه دادهمثال دستور با تأخیر زمانیروش تشخیص
مای‌اس‌کیوال / ماریا‌دی‌بیخواب (ثانیه)تأخیر پاسخ
پستگراسکیو‌الpg_sleep(ثانیه)تأخیر پاسخ
سرور مایکروسافت SQLمنتظر تأخیر '0:0:ثانیه'تأخیر پاسخ
اوراکلdbms_pipe.receive_messageتأخیر پاسخ

قیمت --

--

جلوگیری از حملات تزریق

موثرترین راه برای جلوگیری از این حملات این است که هرگز به ورودی‌های کاربر اعتماد نکنید. توسعه‌دهندگان باید از کوئری‌های پارامتری، که به عنوان دستورات آماده نیز شناخته می‌شوند، استفاده کنند. این تکنیک تضمین می‌کند که پایگاه داده کل ورودی - شامل علامت‌های نقل قول و دستور SLEEP - را به عنوان یک رشته متنی واحد و بی‌ضرر به جای یک دستور اجرایی در نظر بگیرد. وقتی یک سیستم به درستی ایمن شده باشد، وارد کردن "test" و "SLEEP(3)--" در کادر ورود به سیستم، به سادگی منجر به نمایش پیام "کاربر پیدا نشد" بدون هیچ تأخیری در پاسخ سرور می‌شود.

اعتبارسنجی و پاکسازی ورودی

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

اصل حداقل امتیاز

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

امنیت در سیستم‌های مدرن

با نزدیک شدن به سال ۲۰۲۶، ادغام اسکن امنیتی خودکار در خط تولید به یک استاندارد تبدیل شده است. ابزارها اکنون به طور خودکار هر فیلد ورودی را با بارهای داده‌ای مانند "test" AND SLEEP(3)--" در طول مرحله ساخت، آزمایش می‌کنند. این رویکرد پیشگیرانه به شناسایی آسیب‌پذیری‌ها قبل از استقرار کد در یک محیط واقعی کمک می‌کند. برای کسانی که در مدیریت دارایی‌های دیجیتال یا تجارت آنلاین فعالیت دارند، اطمینان از اینکه پلتفرم‌های مورد استفاده، آزمایش نفوذ دقیقی را پشت سر گذاشته‌اند، برای محافظت از داده‌های مالی حساس، حیاتی است.

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

تشخیص پروب‌های فعال

مدیران سیستم می‌توانند با نظارت بر الگوهای غیرمعمول در زمان پاسخگویی سرور، این حملات را تشخیص دهند. اگر یک آدرس IP خاص به طور مداوم درخواست‌هایی را ایجاد می‌کند که دقیقاً ۳، ۵ یا ۱۰ ثانیه بیشتر از میانگین طول می‌کشند، این یک شاخص قوی از تلاش برای تزریق SQL کورکورانه مبتنی بر زمان است. فایروال‌های برنامه‌های کاربردی وب (WAF) نیز با تشخیص امضای کلمات کلیدی SQL مانند AND ، SLEEP و کامنت -- در پارامترهای URL یا فرم‌های ارسالی، در مسدود کردن این payloadها بسیار مؤثر هستند.

اهمیت ثبت وقایع

ثبت جامع وقایع برای تجزیه و تحلیل پس از حادثه ضروری است. اگرچه یک تزریق کورکورانه‌ی موفق، ردی از داده‌های دزدیده شده در لاگ‌ها به جا نمی‌گذارد، اما ردی از کوئری‌های مشکوک را به جا می‌گذارد. با بررسی لاگ‌های پایگاه داده، تیم‌های امنیتی می‌توانند نقاط ورودی مورد هدف را شناسایی کرده و شکاف‌ها را ببندند. در سال ۲۰۲۶، بسیاری از سازمان‌ها از تجزیه و تحلیل لاگ مبتنی بر هوش مصنوعی برای شناسایی این ناهنجاری‌های زمانی ظریف در لحظه استفاده می‌کنند و این امکان را فراهم می‌کنند که قبل از اینکه هرگونه داده‌ای با موفقیت استخراج شود، ترافیک متخلف را فوراً مسدود کنند.

Buy crypto illustration

خرید رمزارز با 1 دلار

ادامه مطلب

قدرت قد تایلر وودز — داستان کامل توضیح داده شده

داستان کامل پشت قد تایگر وودز و تأثیر آن بر حرفه افسانه‌ای گلف او را کشف کنید. بیاموزید چرا قامت 6'1" او استانداردی در این ورزش تعیین می‌کند.

چرا ایران به اسرائیل حمله کرد: داستان کامل توضیح داده شده است

کشف کنید که چرا ایران در سال ۲۰۲۴ به اسرائیل حمله کرد و باعث درگیری‌های جاری شد. در این تحلیل دقیق، رویدادهای کلیدی، پویایی‌های منطقه‌ای و تأثیر جهانی آنها را بررسی کنید.

آیا تایگر وودز هنوز گلف بازی می‌کند؟ بررسی واقعیت ۲۰۲۶

آیا تایگر وودز هنوز در سال ۲۰۲۶ گلف بازی می‌کند؟ با حرفه انتخابی، به‌روزرسانی‌های سلامتی و تغییر استراتژیک او در مسابقات و نقش‌ها آشنا شوید.

چرا اسرائیل و ایران می‌جنگند: داستان کامل ۲۰۲۶ توضیح داده شده است

دلایل ریشه‌ای درگیری اسرائیل و ایران در سال ۲۰۲۶، تأثیر جهانی آن و مسیرهای بالقوه برای صلح را کشف کنید. داستان کامل را که توضیح داده شده است، کشف کنید.

جو بایدن کجاست | واقعیت غافلگیرکننده پشت صحنه

زندگی جو بایدن را پس از ریاست جمهوری در سال ۲۰۲۶، با تمرکز بر خانواده، فعالیت‌های عمومی و نفوذ سیاسی پایدار او، کشف کنید.

جریمه قرص بایدن چیست | واقعیت در مقابل داستانی

«جریمه دارویی بایدن» را در قانون کاهش تورم، که بر قیمت‌گذاری دارو و مدیکر تأثیر می‌گذارد، بررسی کنید. درباره تأثیر آن بر هزینه‌ها و استراتژی مراقبت‌های بهداشتی بیاموزید.

اشتراک‌گذاری
copy

سودده‌ها