برنامج حقن المواقع SQL-Injection
jSQL Injection هو تطبيق خفيف وصغير الحجم (اقل من 3 ميجا) يستخدم لحقن المواقع واستخراج معلومات قاعدة البيانات من السرفر. هو برنامج مجاني ومفتوح المصدر ومتعدد المنصات يعمل على نظام ويندوز و لينكس و Mac OS X.
برنامج jSQL Injection أصبح جزءا من التوزيعة الرسمية لاختبار الاختراق Kali Linux ويتم تضمينه في توزيعات أخرى مثل Pentest Box و parrotsec و ArchStrike أو BlackArch Linux.
تم تطوير برنامج اختراق المواقع jSQL Injection باستخدام مكتبات مفتوحة المصدر رائعة مثل Spring، spockframework و hibernate، ويستخدم منصة Travis CI للتكامل المستمر.
يتم اختبار كل تحديث للبرنامج باستخدام Java من الإصدار 8 إلى 13 في السحابة ، مقابل قواعد بيانات MySQL و PostgreSQL و H2 المختلفة.
كود المصدر مفتوح لأي مساهمة في اختبارات التحسين المتعددة و مؤشرات الترابط ، والتطوير ، والوحدة والتكامل.
ماهو SQL Injection
حقن SQL هو أسلوب إدخال رمز قد يؤدي إلى تدمير قاعدة البيانات الخاصة بك. يعد حقن SQL أحد أكثر تقنيات اختراق الويب شيوعًا. حقن SQL هو وضع التعليمات البرمجية الضارة في عبارات SQL ، عبر إدخال صفحة الويب.
شرح SQL Injection attack
يحدث حقن SQL عادةً عندما تطلب من مستخدم إدخال ، مثل اسم المستخدم / معرف المستخدم الخاص به ، وبدلاً من الاسم / المعرف ، يمنحك المستخدم عبارة SQL التي ستقوم بتشغيلها على قاعدة البيانات الخاصة بك دون قصد .
انظر إلى المثال التالي الذي ينشئ عبارة SELECT عن طريق إضافة متغير (txtUserId) إلى سلسلة select. يتم جلب المتغير من إدخال المستخدم (getRequestString):
مثال
txtUserId = getRequestString("UserId");txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;
أنواع SQL injection
الحقن المستند إلى الخطأ Error based Injection
يرسل المهاجم بعض الاستعلام الضار إلى قاعدة البيانات مما يؤدي إلى حدوث أخطاء. يجب أن تكون الأخطاء عامة جدًا ، و تعطي تلميحات مفيدة للمهاجم.
Select * from stores where product_id = blah’ or 1=1--
هناك الكثير من السلاسل التي يتم تقييمها دائمًا على أنها صحيحة ، مثل '1' = '1' 'a' = 'a' ، وما إلى ذلك ، وتستخدمها في الاستعلام لإنشاء شروط صحيحة باستمرار.
Select * from users where username=’blah’ or ‘a’=’a’ -- and password=’pass’
إدخال SQL المستند إلى الاتحاد Union Based SQL injection
استخدام أمر الاتحاد في استعلام SQL لتنفيذ استعلامات إضافية ؛ وبالتالي ، تعديل / إدراج / حذف أو إسقاط محتويات الجدول.
Select * from stores where product_id=1 union select 1,database(),user(),4#
Select * from stores where id=1’
الحقن الأعمى Blind SQL injection
- الحقن التلقائي لـ 23 نوعًا من قواعد البيانات: Access و CockroachDB و CUBRID و DB2 و Derby و Firebird و H2 و Hana و HSQLDB و Informix و Ingres و MaxDB و Mckoi و MySQL و Neo4j و NuoDB و Oracle و PostgreSQL و SQLite و SQL Server و Sybase و Teradata و Vertica
- إستراتيجيات الحقن المتعددة: الحقن العادي ، حقن الخطأ ، الحقن الأعمى و الوقت Normal, Error, Blind and Time
- SQL والتلاعب بالرمل
- حقن قائمة الأهداف
- قراءة وكتابة الملفات على المضيف باستخدام الحقن
- إنشاء وتصور هيكل الويب وقشرة SQL
- القوة الغاشمة لتجزئة كلمة المرور
- ابحث عن صفحات الإدارة
- تجزئة النص وترميزه وفك تشفيره
- المصادقة الأساسية ، الملخص ، NTLM ، Kerberos
- اتصال الوكيل HTTP و SOCKS4 و SOCKS5
- دعم اللغة العربية ومختلف اللغات الاخرى.
تحميل برنامج حقن المواقع SQL-Injection
كيفية تثبيت برنامج JSQL-Injection
في ويندوز والماكنتوش
قم بتثبيت Java 8، ثم قم بتنزيل أحدث إصدار jSQL Injection وانقر نقرًا مزدوجًا على الملف لبدء تشغيل البرنامج.
في النظامين Kali Linux و ParrotSec
إذا كنت تستخدم Kali Linux ، فاحصل على أحدث إصدار باستخدام أوامرapt update
apt-get install jsql-injection
يمكنك أيضًا كتابة الامر في الطرفية لبدء البرنامج.
java -jar jsql-injection-v0.81.jar
شرح حقن موقع مصاب بثغرة إس كيو إل انجكشن SQL-Injection
الخطوة الاولى
قم بالبحث عن المواقع المصابة بثغرة حقن إس كيو إل عن طريق الدورك
سأستعمل هذا الدورك في الشرح
view_items.php?id=
- يمكنك تحميل مجموعة من Dorks من هنا
view_items.php?id=home.php?cat=item_book.php?CAT=www/index.php?page=schule/termine.php?view=goods_detail.php?data=storemanager/contents/item.php?page_code=view_items.php?id=customer/board.htm?mode=help/com_view.html?code=n_replyboard.php?typeboard=eng_board/view.php?T****=prev_results.php?prodID=bbs/view.php?no=gnu/?doc=zb/view.php?uid=global/product/product.php?gubun=m_view.php?ps_db=productlist.php?tid=product-list.php?id=onlinesales/product.php?product_id=garden_equipment/Fruit-Cage/product.php?pr=product.php?shopprodid=product_info.php?products_id=productlist.php?tid=
عند ادخال الدورك بموقع البحث جوجل وفتح موقع معين قم باضافة علامة التنصيص ( ' ) في اخر الرابط. اذا ظهر اي خطأ أو تغيير بالموقع فالموقع مصاب بثغرة الحقن . بعد ان تعثر على مواقع مصابة بثغرة الحقن انتقل للخطوة التالية
الخطوة الثانية
افتح برنامج ثم ادخل رابط URL الموقع المصاب في الاعلى كما بالصورة بجانب GET واضغط أنتر
كليك على اسم القاعدة حتى تظهر بعرض ما بداخلها Tree
ظهر لنا حساب المستخدم الخاص بالموقع
كيفية البحث عن لوحة المتحكم Admin page
الحماية من SQL Injection
الخطوة الأولى هي التحقق من صحة الإدخال (المعروف أيضًا باسم التطهير) ، وهو ممارسة كتابة التعليمات البرمجية التي يمكنها تحديد مدخلات المستخدم غير المشروعة.
بينما يجب دائمًا اعتبار التحقق من صحة الإدخال من أفضل الممارسات ، إلا أنه نادرًا ما يكون حلاً مضمونًا. الحقيقة هي أنه في معظم الحالات ، ليس من المجدي ببساطة تحديد جميع المدخلات القانونية وغير القانونية - على الأقل ليس دون التسبب في عدد كبير من الإيجابيات الخاطئة ، والتي تتداخل مع تجربة المستخدم ووظائف التطبيق.
لهذا السبب ، يتم استخدام جدار حماية تطبيق الويب (WAF) بشكل شائع لتصفية SQLI ، بالإضافة إلى التهديدات الأخرى عبر الإنترنت. للقيام بذلك ، تعتمد WAF عادةً على قائمة كبيرة ومحدثة باستمرار من التوقيعات المصممة بدقة والتي تسمح لها بالتخلص من استعلامات SQL الضارة.
عادةً ما تحتفظ مثل هذه القائمة بالتوقيعات للتعامل مع نواقل هجوم محددة ويتم تصحيحها بانتظام لإدخال قواعد حظر للثغرات الأمنية المكتشفة حديثًا.
غالبًا ما يتم أيضًا دمج جدران الحماية الحديثة لتطبيقات الويب مع حلول الأمان الأخرى. من هذه ، يمكن أن تتلقى WAF معلومات إضافية تزيد من قدراتها الأمنية.
على سبيل المثال ، قد يقوم جدار حماية تطبيق الويب الذي يواجه إدخالًا مشبوهًا ولكن ليس ضارًا بالتحقق منه مع بيانات IP قبل اتخاذ قرار بحظر الطلب. إنه يحظر الإدخال فقط إذا كان عنوان IP نفسه له سجل سمعة سيئ.
يستخدم WAF أيضًا تقنيات التعهيد الجماعي التي تضمن نشر التهديدات الجديدة التي تستهدف أي مستخدم على الفور عبر قاعدة المستخدمين بأكملها. يتيح ذلك الاستجابة السريعة للثغرات الأمنية التي تم الكشف عنها حديثًا وتهديدات zeroday .
إخلاء المسؤولية
اختراق المواقع دون موافقة متبادلة مسبقة غير قانوني . المستخدم النهائي مسؤول ويلتزم بجميع القوانين المعمول بها. لا نتحمل في مدونة ويكي كالي لينكس و المطورون أي مسؤولية ولا يتحملون أي مسؤولية عن أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.