‹ بازگشت به کتابخانه‌ی رایت‌آپ‌ها
SQL Injection شدت: بحرانی

UNION-based SQL Injection برای استخراج داده از جدول دیگر

روش استفاده از عملگر UNION برای کشیدن داده از جدول‌هایی که در کوئری اصلی اصلاً حضور ندارند.

نویسنده: تیم PentesterHub

اگر خروجی یک کوئری آسیب‌پذیر مستقیماً در صفحه نمایش داده شود (مثل لیست محصولات)، می‌توان با UNION SELECT ستون‌هایی از یک جدول دیگر (مثل جدول users) را به همان خروجی اضافه کرد.

گام‌های عملی

نکته‌ی مهم

نوع داده‌ی هر ستون باید با نوع ستون اصلی سازگار باشد (مثلاً عدد به‌جای NULL در ستون‌های عددی)، وگرنه کوئری با خطا رد می‌شود.

راه‌حل

همان دفاع ریشه‌ای Prepared Statements؛ علاوه بر آن، اصل حداقل دسترسی روی کاربر دیتابیس (بدون نیاز به خواندن جدول‌های دیگر).

تمرین عملی در آزمایشگاه‌های SQL Injection ›