9 أنواع شائعة من هجمات حقن تطبيقات الويب

تكمن مشكلة تطبيقات الويب في أنها معرضة بشكل علني لمليارات مستخدمي الإنترنت ، وكثير منهم سيرغب في كسر إجراءات الأمان الخاصة به – مهما كانت الأسباب.

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

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

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

حقن الكود

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

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

على سبيل المثال ، يحتاج إلى تحديد كمية البيانات المتوقعة ، والتحقق من تنسيق البيانات قبل قبولها ، وتقييد مجموعة الأحرف المسموح بها.

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

  كيفية حذف حساب Tinder الخاص بك في ثلاث خطوات بسيطة

حقن SQL

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

تطبيقات PHP و ASP عرضة لهجمات حقن SQL بسبب واجهات وظيفية قديمة. عادة ما تكون تطبيقات J2EE و ASP.Net أكثر حماية من هذه الهجمات. عندما يتم العثور على ثغرة أمنية لحقن SQL – ويمكن العثور عليها بسهولة – فإن حجم الهجمات المحتملة سيكون محدودًا فقط بمهارة المهاجم وخياله. وبالتالي ، فإن تأثير هجوم حقن SQL مرتفع بلا شك.

حقن القيادة

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

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

يمكن منع هذه الهجمات بواسطة مسؤول النظام ، عن طريق الحد من مستوى الوصول إلى النظام لتطبيقات الويب التي تعمل على الخادم.

عبر موقع البرمجة

عندما يقوم أحد التطبيقات بإدراج مدخلات من مستخدم داخل المخرجات التي يولدها ، دون التحقق من صحتها أو تشفيرها ، فإنه يعطي الفرصة للمهاجم لإرسال تعليمات برمجية ضارة إلى مستخدم نهائي مختلف. تنتهز هجمات البرمجة النصية عبر المواقع (XSS) هذه الفرص لحقن البرامج النصية الضارة في مواقع الويب الموثوقة ، والتي يتم إرسالها في النهاية إلى مستخدمين آخرين للتطبيق ، والذين يصبحون ضحايا المهاجم.

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

يمكن تقسيم هجمات XSS عمومًا إلى فئتين مختلفتين: المخزنة والانعكاس.

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

  كيفية تجاوز التحقق من رقم هاتف Tinder

حقن XPath

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

XPath هي لغة قياسية يمكنك من خلالها ، مثل SQL ، تحديد السمات التي تريد البحث عنها. لإجراء استعلام على بيانات XML ، تستخدم تطبيقات الويب مدخلات المستخدم لتعيين نمط يجب أن تتطابق معه البيانات. من خلال إرسال إدخال تالف ، يمكن أن يتحول النمط إلى عملية يريد المهاجم تطبيقها على البيانات.

على عكس ما يحدث مع SQL ، في XPath ، لا توجد إصدارات مختلفة. هذا يعني أنه يمكن إجراء حقن XPath على أي تطبيق ويب يستخدم بيانات XML ، بغض النظر عن التنفيذ. هذا يعني أيضًا أن الهجوم يمكن أن يكون آليًا ؛ لذلك ، على عكس حقن SQL ، فمن المحتمل أن يتم إطلاقه ضد عدد تعسفي من الأهداف.

حقن أمر البريد

يمكن استخدام طريقة الهجوم هذه لاستغلال خوادم البريد الإلكتروني والتطبيقات التي تنشئ عبارات IMAP أو SMTP مع إدخال مستخدم تم التحقق من صحته بشكل غير صحيح. من حين لآخر ، لا تتمتع خوادم IMAP و SMTP بحماية قوية ضد الهجمات ، كما هو الحال مع معظم خوادم الويب ، وبالتالي يمكن أن تكون أكثر قابلية للاستغلال. من خلال الدخول عبر خادم البريد ، يمكن للمهاجمين التهرب من القيود مثل اختبارات CAPTCHA وعدد محدود من الطلبات وما إلى ذلك.

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

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

حقن CRLF

يمثل إدخال حرف إرجاع وحروف تغذية السطر – مجموعة تُعرف باسم CRLF – في حقول إدخال نموذج الويب طريقة هجوم تسمى حقن CRLF. تشير هذه الأحرف غير المرئية إلى نهاية السطر أو نهاية الأمر في العديد من بروتوكولات الإنترنت التقليدية ، مثل HTTP أو MIME أو NNTP.

على سبيل المثال ، قد يؤدي إدخال CRLF في طلب HTTP ، متبوعًا ببعض كود HTML معين ، إلى إرسال صفحات ويب مخصصة إلى زوار موقع الويب.

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

  كيفية تغيير حجم الصورة [from Any Device]

حقن رأس المضيف

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

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

حقن LDAP

LDAP هو بروتوكول مصمم لتسهيل البحث عن الموارد (الأجهزة والملفات والمستخدمين الآخرين) في الشبكة. إنه مفيد جدًا لشبكات الإنترانت ، وعند استخدامه كجزء من نظام تسجيل دخول واحد ، يمكن استخدامه لتخزين أسماء المستخدمين وكلمات المرور. تتضمن استعلامات LDAP استخدام أحرف تحكم خاصة تؤثر على التحكم فيها. يمكن للمهاجمين تغيير السلوك المقصود لاستعلام LDAP إذا كان بإمكانهم إدراج أحرف التحكم فيه.

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

في المكان المناسب داخل سلسلة الإدخال.

منع هجمات الحقن

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

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