Ola Mahmoud2 نشر 5 أكتوبر 2021 أرسل تقرير نشر 5 أكتوبر 2021 ممكن توضيح السؤال قم بعمليه حقن جمل insert , update فى جمل sql 2 اقتباس
1 سامح أشرف نشر 5 أكتوبر 2021 أرسل تقرير نشر 5 أكتوبر 2021 يمكن إستخدام جملة INSERT أو UPDATE في عملية حقن جمل SQL وذلك عند محاولة إكتشاف أو إستغلال ثغرات SQL Injection حيث يمكن للمخترق Hacker أن يقوم بإضافة بريد إلكتروني جديد كمسئول Admin أو حتى يقوم بتغير كلمة مرور أحد المستخدمين أو أحد المسئولين، فعلى سبيل المثال، إن كان لدينا حقل لعملية بحث، على النحو التالي: <form action="search.php" method="GET"> <input type="text" name="query" placeholder="Search ..." /> </form> وتتم عملية المعالجة من خلال صفحة search.php على النحو التالي: <?php // إستخدام ما أدخله المستخدم في جملة SQL بشكل مباشر في $result = mysql_query("SELECT * FROM posts WHERE title LIKE '%" . $_GET['query'] . "%'"); الكود السابق خطير للغاية لأنه يُمكن المستخدم أن يقوم بتنفيذ جمل SQL من داخل حقل البحث، فما الذي سيحدث إن قام شخص ما بكتابة الكود التالي في حقل البحث: post title%'; DELETE FROM users; -- إن قام أحد ما بكتابة النص السابق في حقل البحث، فستكون جملة SQL التي يتم تنفيذها في النهاية كالتالي: SELECT * FROM posts WHERE title LIKE '%post title%'; DELETE FROM users; --%' بهذا الشكل سوف يتم أولًا البحث عن منشور بعنوان مشابهة ثم سيتم حذف كل المستخدمين من جدول users وهذا ما لا نريده بالطبع، وبالمثل يمكن إستخدام جمل INSERT أو UPDATE لإضافة أو تغير مسئولين في الموقع، وذلك من خلال كتابة تعليمة مشابهة للتالي: post title%'; INSERT INTO users(email, name, password, is_admin) VALUES('hacker@mail.com', 'Hacker', '123456', 1); -- الجملة السابقة سوف تؤدي إلى إضافة مستخدم جديد في جدول users وجعل صلاحياته admin، أيضًا يمكن إستخدام جملة UPDATE لتغير كلمة سر أي مستخدم على سبيل المثال: post title%'; UPDATE users SET password = '123456' WHERE email = 'admin@mail.com'; -- الجملة السابقة سوف تقوم بتغير كلمة المرور للمسئول (أو المستخدم) الذي لديه بريد إلكتروني admin@mail.com. بهذه الطريقة يمكن أن يتم إستخدام جمل UPDATE أو INSERT لحقن تعليمات SQL في قاعدة البيانات. بالطبع لن يكون المخترق أو مُختبِر الإختراق على علم بأسماء الجداول أو الأعمدة في الغالب لكن من خلال بعض جمل SQL الأخرى التي سيقوم بحقنها سيمكنه معرفة كل الجداول في قاعدة البيانات وكذلك أسماء وأنواع الأعمدة في كل جدول، ويعتمد الأمر في النهاية التجربة ومحاولة إستغلال ثغرة SQL Injection بأي طريقة ممكنة. يمكنكِ الإطلاع على هذه المقالة التي توضح بتفصيل أكثر ما هي ثغرات SQL Injection وكيفية الحماية منها: أيضًا لمعلومات أكثر حول حماية المواقع يمكنكِ الإطلاع على هذه المقالة هنا: يجدر بالذكر أن هناك الكثير من المواقع التي تقدم مكافأت لكل من يكتشف ثغرات مشابهة في خدماتها وتسمى المكافأة في هذه الحالة bug bounty ويوجد الكثير من المواقع التي تقدم برامج لإكتشاف الثغرات مثل hackerone و bugcrowd و Facebook أيضًا 1 اقتباس
0 Wael Aljamal نشر 5 أكتوبر 2021 أرسل تقرير نشر 5 أكتوبر 2021 إن سؤالك أيضا بحاجة لتوضيح، أقصد أنه سؤال عام، لذلك أقترح عليك مايلي: insert تعمل على إضافة بيانات للجدول (بيانات جديدة غير موجودة من قبل) تضيف سطر أو أكثر update تعمل على تعديل حقل أو أكثر من سطر أو أكثر من جدول (غالباً حسب شرط معين) يمكنك الاستفادة من توثيق SQL لموسوعة حسوب: إدخال السجلات للجدول INSERT تعديل السجلات في جدول update أرجو دراسة هذين المقالين ثم التجريب اقتباس
السؤال
Ola Mahmoud2
ممكن توضيح السؤال
قم بعمليه حقن جمل insert , update
فى جمل sql
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.