• لمتابعة آخر المقالات و الحصول على كورسات مجانية انضم لقناتنا الآن إنضم الأن
المشاركات

SQL injection vulnerability allowing login bypass 💉

GREEN ARMOR


 SQL injection vulnerability allowing login bypass 💉


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

📍 كيف تحدث هذه الثغرة؟
عادةً ما يتم التحقق من صحة بيانات تسجيل الدخول باستخدام استعلام SQL مثل التالي:

SELECT * FROM users WHERE username = 'admin' AND password = 'password123';

📌 في هذا الاستعلام، يتم التحقق من وجود مستخدم باسم `admin` وكلمة مرور `password123`. إذا تم العثور على تطابق، يتم منح المستخدم حق الوصول.

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

🔥 مثال على الهجوم:
1️⃣ لنفترض أن المهاجم أدخل القيم التالية:
- **اسم المستخدم:** `admin'--`
- **كلمة المرور:** أي قيمة (مثل `123`)

2️⃣ سيصبح الاستعلام النهائي كالتالي:

SELECT * FROM users WHERE username = 'admin'--' AND password = '123';

3️⃣ في هذا الاستعلام:
- `'` تغلق القيمة الأصلية لاسم المستخدم.
- `--` يبدأ تعليق في SQL، مما يعني أن الجزء المتبقي من الاستعلام (`AND password = '123'`) يتم تجاهله.

4️⃣ نتيجة لذلك، يتم تنفيذ الاستعلام التالي:
SELECT * FROM users WHERE username = 'admin';

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

💥 كيفية الحماية:
1.استخدام الاستعلامات المحددة (Prepared Statements):استخدام الاستعلامات المحددة مع معاملات مرتبطة (parameterized queries) يمنع حقن SQL لأن المدخلات يتم التعامل معها كقيم وليس كجزء من الاستعلام.

2.التحقق من المدخلات: تأكد من أن جميع المدخلات التي تأتي من المستخدم يتم التحقق منها وتنظيفها قبل استخدامها في الاستعلامات.

3.التشفير كلمات المرور: قم بتخزين كلمات المرور بشكل مشفر (مثل استخدام خوارزميات التجزئة مثل bcrypt) ولا تقارن كلمات المرور مباشرة في الاستعلامات.

4.استخدم ORM: استخدام أدوات Object-Relational Mapping (ORM) يمكن أن يساعد في تجنب كتابة استعلامات SQL مباشرة، مما يقلل من خطر الثغرات.

إرسال تعليق

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.