
اكتُشفت ثغرة SQL Injection في نظام إدارة متجر البقالة 1.0
تم تحديد ثغرة حقن SQL عالية الخطورة في مكوّن search_products.php من Grocery Store Management System 1.0، وهو تطبيق ويب مبني على PHP/MySQL من إنشاء anirudhkannan.
تنشأ المشكلة من عدم التحقق السليم من المدخلات والبناء غير الآمن لاستعلامات SQL باستخدام المعامل scost الذي يتحكم فيه المستخدم. تتيح هذه الثغرة للمهاجمين التلاعب بمنطق SQL الأساسي، مما قد يؤدي إلى كشف البيانات الحساسة، أو تعديل البيانات، أو المساس الكامل بقاعدة البيانات.
Grocery/search_products.phpتوجد الثغرة بسبب الربط المباشر لمدخلات المستخدم غير المتحقق منها في استعلامات SQL.
يتم تضمين معامل POST scost، الذي يُفترض أن يمثل قيمة تكلفة رقمية للمنتج، في جملة WHERE الخاصة بـ SQL دون:
يسمح ذلك للمهاجم بحقن تعبيرات منطقية عشوائية في SQL، مما يغيّر سلوك الاستعلام ويستخرج محتويات قاعدة البيانات باستخدام تقنيات حقن SQL القائم على الاستجابة المنطقية.
الثغرة قابلة للاستغلال عبر طلب POST قياسي إلى search_products.php. عند إرسال تعبيرات خبيثة، يعيد الخادم اختلافات ملحوظة في الاستجابة (فروق TRUE/FALSE)، مما يؤكد أن مدخلات المستخدم تؤثر على منطق SQL.
scostتؤدي هذه الشروط مجتمعة إلى تمكين المهاجمين من تعديل منطق SQL المقصود.
تم تصنيف هذه الثغرة على أنها عالية الخطورة بسبب انخفاض تعقيد الهجوم، وعدم الحاجة إلى مصادقة، وتأثيرها الكامل على قاعدة البيانات من قراءة وكتابة.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
الخطورة التقديرية: عالية (9.8)
يمكن استغلال الثغرة من خلال قيم مصمّمة بعناية تُمرَّر إلى المعامل scost.
يمكن للمهاجمين:
(تم حذف الحمولات التفصيلية عمدًا لمنع إساءة الاستخدام.)
لمعالجة الثغرة:
scost يقبل القيم الرقمية فقطإلى أن يتوفر تصحيح: