Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

1. اقتطاع محتوى الاستعلام

في حال كنت تريد تجاهل البرامج النصية في الاستعلام. على سبيل المثال، بالنسبة للمعالجة أدناه، يتطلب الاستعلام الشرط active=1 ولكن يمكننا التعليق (--، -- -، -+، #، /*، /**/، // ، ;%00…) و تجاهله. عند التعدين، غالبًا ما لا نعرف ما يفعله المحتوى المتبقي من الاستعلام، لذا فإن استخدام التعليقات في هذه الحالة فعال للغاية.

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

بعد التعليق يصبح استفسارنا:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

2. تجاوز تصفية الكلمات الرئيسية

أ. التعليقات المضمنة

يتم استخدام التعليقات المضمنة بشكل فعال للغاية لتجاوز تصفية المساحات البيضاء. يمكنك استخدام الأحرف التالية لتجاوز تصفية المسافات البيضاء: /**/، %20، %09، %0a، %0b، %0c، %0d، %a0). على سبيل المثال:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

أو تجاوز تصفية الكلمات الرئيسية (متوفر مع MySql). في المثال أدناه، الكلمات الرئيسية للاتحاد وكلمة المرور موجودة في القائمة السوداء لذا تم حظرها، يمكننا تجاوزها عن طريق:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

ب. استبدال الكلمات الرئيسية

عند استغلال حقن SQL، غالبًا ما نستخدم كلمات رئيسية مثل: union، Select، information_schema... في كثير من الحالات، يستبدل المبرمجون هذه الكلمات الأساسية ببساطة:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

يمكننا أن نرى بسهولة أن كود المعالجة أعلاه غير موجود. إذا كان الأمر مجرد مطابقة للنمط، فإن التجاوز يكون بسيطًا للغاية. دعونا نطبق حساس لحالة الأحرف، حيث يتم تفسير الأحرف الكبيرة والصغيرة بشكل مختلف.

الآن بدلاً من استخدام الكلمة الأساسية:

select, union…

سوف نستخدم:

SeLEcT, UniOn…

أساس هذا التجاوز هو أن أنظمة إدارة قواعد البيانات لا تميز بين الكلمات الأساسية للحالة والحالة.

في بعض الحالات، سيقوم تطبيق الويب بتصفية كل أو جزء من كلمات رئيسية معينة (اتحاد، تحديد...). سوف نتجاوز على النحو التالي:

id=1+uniunionon+SeLselectecT+1,2,3-- -

بعد تصفية Union وSelect بواسطة تطبيق الويب، سيتبقى لدينا الاستعلام الصحيح كما يلي:

id=1+union+SeLecT+1,2,3-- -

ج. ترميز الأحرف

يمكننا تجاوز قيام WAF (جدار حماية تطبيق الويب) بحظر الكلمات الرئيسية عن طريق تشفيرها. ستقوم العديد من تطبيقات WAF بفك تشفير الاستعلام مرة واحدة فقط وتصفية الكلمات الرئيسية في القائمة السوداء، ثم دعونا نقوم بتشفير الطلب مرتين حتى يمكن تجاوزه في هذه الحالة.

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

3. تجاوز الكتل المفردة والمزدوجة

- دعونا نلقي نظرة على مثال قبل التعرف على هذا التجاوز على وجه التحديد.

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

في هذا السيناريو، لدينا جدول في قاعدة البيانات يسمى المستخدمين. المهمة التالية هي معرفة اسم العمود في الجدول للحصول على معلوماته. كما في الاستعلام أعلاه، نستخدم الشرط: table_name='users'. ولكن إذا تم حظر كل من علامات الاقتباس المفردة (') وعلامات الاقتباس المزدوجة (") بواسطة WAF، فلن نتمكن بعد الآن من استخدام "المستخدمين" أو "المستخدمين". فكيف نحل هذه المشكلة؟ يمنحنا نظام قاعدة البيانات المدمج وظيفة تحل هذه المشكلة بشكل جيد جدًا، وهي الدالة CHAR() (بالنسبة لأوراكل فهي CHR())، على سبيل المثال، في الاستعلام أعلاه سوف نتجاوزها عن طريق:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفيةWeb5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

مبرمجو PHP على دراية بوظيفة addlashes(). وظيفة addlashes () لها تأثير الإضافة قبل أحرف خاصة مثل علامة الاقتباس المفردة (')، علامة الاقتباس المزدوجة ()، الشرطة المائلة العكسية (\)، حرف NUL (بايت فارغ) "\" لمساعدة نظام إدارة قاعدة البيانات. هل هناك لا توجد صعوبة أو ارتباك عند التعامل مع السلاسل التي تحتوي على تلك الأحرف؟ وبالتالي، عندما نريد إدخالها في الاستعلام وفقًا للبرنامج النصي: name='someName' أو '1'='1'-- لم تعد النتائج كما توقعنا.

ومع ذلك، هناك تقنية لتجاوز وظيفة addlashes() لإدخال أحرف الاقتباس المفردة ('). لقد كانت هذه التقنية عامة لفترة طويلة، وتنفيذ هذه التقنية أمر صعب للغاية لأنها مرتبطة بأسلوب الترميز المطبق على موقع الويب.

4. تجاوز الخطأ "مزيج الترتيب غير القانوني لعملية UNION"

في بعض أنظمة الإدارة (الموجودة عادة في MySql)، عندما يتم تعيين قواعد البيانات والجداول للترتيب، عند استخدام الكلمة الأساسية UNION، سيتم الإبلاغ عن الخطأ "مزيج غير قانوني من الترتيب لعملية UNION". يمكن أن يكون إعداد الترتيب بسبب نية مصمم قاعدة البيانات أو بسبب الإعداد الافتراضي لـ MySql. في حالة استخدام Union، يجب علينا التأكد من أن حالة القيمة المحددة في كل حقل يجب أن يكون لها نوع الكود المقابل المحدد. في رأيي، هذا الخطأ شائع جدًا، خاصة بالنسبة لأنظمة إدارة المحتوى (CMS) التي تستخدم Apache MySql. يمكن للأشخاص معرفة المزيد على: http://bugs.mysql.com/bug.php?id=57926.
في هذه الحالة يمكننا استخدام طرق للتحويل إلى نوع الترميز المناسب.

على سبيل المثال في الحالة التالية:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

في الاستعلام أعلاه، إذا كان العمود 1 قد تم تعيين ترتيبه على Unicode-UTF8 أو _latin1، على سبيل المثال، فيجب تحويل ما تم تحديده من العمود 2 إلى الكود المقابل. يمكننا فرض النمط على النحو التالي:

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

نرى عيبًا في طريقة التجاوز هذه: علينا أن نعرف أن الكود المجمع هو _latin1. أفضل طريقة لتجاوزها، في رأيي، هي استخدام وظائف التشفير وفك التشفير السداسية وغير السداسية.

Web5: حقن SQL - بعض التقنيات لتجاوز آليات التصفية

هناك العديد من الوظائف الأخرى التي يمكن استخدامها بدلاً من hex وunhex.

اترك تعليقاً

كيفية إزالة إشعار طلب حقوق الطبع والنشر في الزاوية اليمنى من الشاشة على نظام التشغيل Windows 10

كيفية إزالة إشعار طلب حقوق الطبع والنشر في الزاوية اليمنى من الشاشة على نظام التشغيل Windows 10

هل ترى إشعار تفعيل Windows 10 في الزاوية اليمنى من الشاشة؟ سترشدك هذه المقالة إلى كيفية حذف إشعار طلب حقوق الطبع والنشر على نظام التشغيل Windows 10.

تعليمات من AZ حول كيفية تثبيت Windows 10 الإصدار 14393.222

تعليمات من AZ حول كيفية تثبيت Windows 10 الإصدار 14393.222

أصدرت Microsoft مؤخرًا آخر تحديث تراكمي لمستخدمي أجهزة الكمبيوتر التي تعمل بنظام Windows 10 والذي يسمى Build 14393.222. يعمل هذا التحديث الذي تم إصداره لنظام التشغيل Windows 10 بشكل أساسي على إصلاح الأخطاء بناءً على تعليقات المستخدمين وتحسين تجربة أداء نظام التشغيل.

قم بحماية شبكة الكمبيوتر الخاص بك مع Bastion host في 3 خطوات فقط

قم بحماية شبكة الكمبيوتر الخاص بك مع Bastion host في 3 خطوات فقط

هل لديك أجهزة كمبيوتر على شبكتك المحلية تحتاج إلى وصول خارجي؟ يمكن أن يكون استخدام مضيف أساسي كحارس بوابة لشبكتك حلاً جيدًا.

3 طرق لمسح كافة سجلات الأحداث بسرعة في نظام التشغيل Windows 10

3 طرق لمسح كافة سجلات الأحداث بسرعة في نظام التشغيل Windows 10

في بعض الأحيان قد تحتاج إلى حذف سجلات الأحداث القديمة مرة واحدة. في هذا الدليل، سيعرض لك موقع Quantrimang.com 3 طرق لحذف كافة سجلات الأحداث بسرعة في Windows 10 Event Viewer.

كيفية إنشاء مفتاح Windows إذا كانت لوحة المفاتيح غير متوفرة

كيفية إنشاء مفتاح Windows إذا كانت لوحة المفاتيح غير متوفرة

إذا كنت تفضل استخدام لوحة مفاتيح كلاسيكية قديمة، مثل IBM Model M، والتي لا تتضمن مفتاح Windows فعليًا، فهناك طريقة سهلة لإضافة المزيد، عن طريق استعارة مفتاح لا تستخدمه كثيرًا.

كيفية إنشاء وضع خلفية شفافة على نظام التشغيل Windows 10

كيفية إنشاء وضع خلفية شفافة على نظام التشغيل Windows 10

WindowTop هي أداة لديها القدرة على تعتيم جميع نوافذ التطبيقات والبرامج التي تعمل على أجهزة الكمبيوتر التي تعمل بنظام Windows 10. أو يمكنك استخدام واجهة ذات خلفية داكنة على النوافذ.

تساعدك أساليب IP المزيفة على الوصول بشكل مجهول

تساعدك أساليب IP المزيفة على الوصول بشكل مجهول

لقد ذكرنا في العديد من المقالات السابقة أن البقاء مجهول الهوية عبر الإنترنت أمر في غاية الأهمية. يتم تسريب المعلومات الخاصة كل عام، مما يجعل الأمان عبر الإنترنت ضروريًا بشكل متزايد. وهذا أيضًا هو السبب وراء ضرورة استخدام عناوين IP الافتراضية. فيما يلي، سنتعرف على طرق إنشاء عناوين IP وهمية!

كيفية إيقاف تشغيل شريط اللغة على شريط مهام Windows 8

كيفية إيقاف تشغيل شريط اللغة على شريط مهام Windows 8

شريط اللغة في نظام التشغيل Windows 8 عبارة عن شريط أدوات لغة مصغر مصمم للعرض تلقائيًا على شاشة سطح المكتب. ومع ذلك، يرغب العديد من الأشخاص في إخفاء شريط اللغة هذا على شريط المهام.

نصائح لتحسين سرعة الاتصال بالإنترنت من Linksys

نصائح لتحسين سرعة الاتصال بالإنترنت من Linksys

يعد تعظيم سرعة الإنترنت أمرًا ضروريًا لتحسين اتصال الشبكة لديك. يمكنك الحصول على تجربة ترفيه وعمل مثالية باستخدام أجهزة الكمبيوتر وأجهزة التلفزيون المجهزة للإنترنت ووحدات التحكم في الألعاب وما إلى ذلك.

كيفية إعداد WEP، WPA، WPA2 لجهاز التوجيه Linksys

كيفية إعداد WEP، WPA، WPA2 لجهاز التوجيه Linksys

يعد الاتصال اللاسلكي أمرًا ضروريًا اليوم، ولهذا السبب، يعد الأمان اللاسلكي ضروريًا لضمان السلامة في شبكتك الداخلية.