اختراق المواقع بطريقة حقن اس كيو ال SQL injection


SQL injection



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

و برغم ان حقن SQL يعد من الثغرات الأمنية القديمة جدًا و المعروفة على نطاق واسع حيث تم اكتشافها في عام 1998. الا ان تقارير امن المعلومات ما زالت تشير الى ان 8 بالمائة من مواقع الويب وتطبيقات الويب بها ثغرات أمنية من نوع حقن SQL. 

كيف يتم تنفيذ هجوم بحقن SQL

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



;("txtUserId = getRequestString("UserId
;txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId



الغرض الاساسى من الكود المكتوب بالاعلى هو انشاء جملة SQL لاختيار مستخدم التطبيق عن طريق تحديد رقم التعريف الخاص بة، سنلاحظ انة لا يوجد ما يمنع المهاجم من ادخال التالى بدلا من رقم التعريف للمستخدم، و يمكن بدل ذلك ادخال التالى:-

200 OR 1=1;

لتصبح جملة SQL النهائية التى سيتم تنفيذها كالتالى:-

SELECT * FROM Users WHERE UserId =200 OR 1=1; 

تمكن الجملة السابقة المهاجم من استرجاع بيانات جدول المستخدمين للتطبيق حيث ان 1=1 دائما ما تكون trueو هو ما يمثل تهديداً اشد خطورة اذا تضمن هذا الجدول بيانات حساسة للمستخدم مثل كلمات المرور للتطبيق على سبيل المثال


خطورة هجوم حقن SQL

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

فى المقالات القادمة سنتعرض لانواع الهجوم بحقن SQL و كيفية الحماية من هجمات حقن SQL.


إرسال تعليق

0 تعليقات