انتقل إلى محتوى الدرس

Anatomy of Authentication Bypass تشريح هجوم تجاوز الشرط

تعلّم الحماية من ثغرات حقن قواعد البيانات SQL Injection واستخدام الاستعلامات المحضرة (PREPARE و EXECUTE) في MySQL 8 مع أمثلة وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لفهم آلية عمل الحماية الهندسية، دعنا نشرح بالتفصيل الدقيق كيف يحوّل النص الخبيث ' OR 1=1 -- شجرة التحليل النحوي (Syntax Tree) داخل محرك الاستعلام:

  • 1. الإغلاق المبكر للنص ('): تقوم علامة التنصيص الأولى التي يدخلها المهاجم بإغلاق علامة التنصيص التي فتحها المبرمج في WHERE email = '.
  • 2. زرع شرط صائب دائماً (OR 1=1): بما أن المعادلة 1=1 نتيجتها TRUE دائماً، يصبح شرط WHERE محققاً لكل صف في الجدول.
  • 3. تعطيل بقية الاستعلام بالتعليق (-- أو #): في MySQL، يحوّل الرمز -- (شرطتان متبوعتان بمسافة) أو الرمز # كل ما يأتي بعده في نفس السطر (مثل شرط التحقق من كلمة المرور أو حالة الحساب) إلى تعليق مهمل!
  • 4. تسريب جداول أخرى عبر UNION SELECT: إذا كان الموقع يعرض نتائج البحث، قد يحقن المهاجم UNION SELECT لدمج بيانات من جداول حساسة أخرى وعرضها على الشاشة.
SQL
-- Observe how Boolean logic evaluates inside the WHERE filter:
SELECT
  ('' = '' AND 'a' = 'b') AS normal_failed_login,
  ('' = '' OR 1 = 1)      AS injected_always_true;

-- Everything after '-- ' on the same line is ignored by the SQL parser:
SELECT 'admin_session_granted' AS status WHERE '' = '' OR 1 = 1 -- AND is_active = 0;

محاكي الوقاية من حقن SQL والاستعلامات المحضرة (Prepared Statements) في MySQL 8