الـ SQL Injection ، سلاح الدمار الشامل ضد تطبيقات الويب ما هي مخاطر الـ SQL Injection

عام 0 geek4arab
Spread the love
ما هي مخاطر الـ SQL Injection
مخاطر الـ SQL Injection تتنوع بحسب وظائف التطبيق نفسه ، فعلى سبيل المثال لنفترض أن لدينا موقع لتسجيل الطلاب و الإستعلام عن درجاتهم و مستوياتهم ، يمكن القيام بما يلي عن طريق الـ SQL Injection :

1- الإستعلام عن درجة طالب بدون معرفة كلمة المرور الخاصة به !!

2- حذف سجل طالب أو مجموعة من الطلاب

3- حذف جدول كامل من قاعدة البيانات

4- إدراج سجل جديد في قاعدة البيانات

5- إكتشاف مسميات الجداول و تركيب و بنية قاعدة البيانات عن طريق التجربة

6- التعديل بمحتوى سجل محدد و تغيير بياناته !!

هذه مجموعة بسيطة من الكوارث التي قد تسببها هذه النوعية من الهجمات ، و فيما يلي سنستعرض بعض الأمثلة

مثال على أمر يقوم بسحب البيانات عن طريق أمر SQL مدمج :

SELECT Id,Title,Abstract FROM News WHERE Category=1 UNION SELECT 1,UsrName,Passwd FROM Usr

الجزء الملون من الإستعلام هو المتغيير الممرر الى البرنامج ، حيث يقوم المخترق في هذا المثال بتمرير أمر SQL آخر وظيفته جلب إسم المستخدم و كلمة المرور من الجدول Usr ، الأن أصبح المخترق قادر على رؤية أسماء المستخدمين و كلمات مرورهم جميعها … هل لك أن تتخيل ذلك ؟؟؟

مثال على أمر يقوم بإدراج بيانات مستخدم جديد :

SELECT email, passwd, login_id, full_name
FROM members
WHERE email = ‘x’;
INSERT INTO members (’email’,’passwd’,’login_id’,’full_name’)
VALUES (‘btree@devhall.com’,’hello’,’Btree’,’Binary Tree’);–
‘;

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

مثال يقوم بحذف جدول كامل من قاعدة البيانات !!

SELECT fieldlist
FROM customers
WHERE name = ‘Binary Tree’;

الشيفرة السابقة تعمل بشكل سليم و نظامي ، حيث تم تمرير قيمة Binary Tree للمتغير في حقل name ، لكن تخيل لو قام المخترق بالتالي :

SELECT fieldlist
FROM customers
WHERE name = ‘\”; DROP TABLE users; —‘;

لو قام المستخدم بإدخال العبارة الملونة بالأحمر في حقل الإسم ، هذا يعني أن جدولا بأكمله سيتم حذفه من قاعدة البيانات !! كارثة اليس كذلك ؟

أعتقد أن هذه الأمثلة كافية لإيقاظ المبرمجين الغافلين عن المخاطر الفعلية وراء مدخلات المستخدمين

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة