
إطار عمل مرخّص لاستغلال حقن SQL لثغرة CVE-2020-5504 في phpMyAdmin، يتضمن تعدادًا تلقائيًا لقواعد البيانات، ودعم الحقن الأعمى، ودعم البروكسي، وتقارير منظمة لاختبار الاختراق والبحث الأمني.
إطار عمل مصرّح به للاختبار الأمني والبحث لتحديد والتحقق من CVE-2020-5504 في نشرات phpMyAdmin
نظرة عامة · الميزات · التثبيت · الاستخدام · التقارير · البنية · المساهمة
إشعار الاستخدام المسؤول: هذا المشروع مخصص فقط للأنظمة التي تملكها أو التي لديك تفويض صريح لتقييمها. لا تستخدمه ضد الأنظمة العامة أو أنظمة الأطراف الثالثة أو أنظمة الإنتاج دون إذن كتابي ونطاق اختبار محدد.
| مخرجات سطر الأوامر | الاستخدام |
|---|---|
![]() | ![]() |
CVE-2020-5504 هي ثغرة حقن SQL تؤثر على صفحة حسابات المستخدمين في phpMyAdmin. وفقًا للنشرة الرسمية من phpMyAdmin، تتأثر إصدارات phpMyAdmin 4.x قبل 4.9.4 وphpMyAdmin 5.0.0؛ وتوصي النشرة بالترقية إلى 4.9.4 أو أحدث لخط الإصدارات 4.x وإلى 5.0.1 أو أحدث لخط الإصدارات 5.x.[1] ويسجّل National Vulnerability Database أن الاستغلال يتطلب حساب MySQL صالحًا للوصول إلى الخادم.[2]
يوفر هذا المشروع سير عمل منظمًا لـ الاختراق الأخلاقي المصرح به، والتحقق المتحكم فيه، والبحث الأمني. وهو مصمم لمساعدة المقيّمين على تحديد بصمة الهدف، والتحقق مما إذا كان الهدف يبدو متأثرًا، وتوثيق الأدلة، وإنتاج تقارير منظمة لتتبع المعالجة.
ينظم الإطار حول أربعة أهداف:
التحديد: تثبيتات phpMyAdmin وجمع المؤشرات المتعلقة بالإصدار.
التحقق: من التعرض المشتبه به باستخدام فحوصات متحكم فيها وغير مدمرة حيثما أمكن.
التقييم: للأهداف المصرح بها باستخدام حدود قابلة للتكوين، وسلوك إعادة المحاولة، ودعم وكيل اختياري.
الإبلاغ: عن النتائج بتنسيقات يسهل مراجعتها وأرشفتها ودمجها في سير العمل.
هذا المشروع ليس بديلاً عن الترقيع، أو إرشادات البائع، أو التكوين الآمن، أو عملية التفويض الرسمية لاختبار الاختراق. وهو لا يضمن اكتشاف كل نشر أو تكوين أو إصدار أو حالة شبكة. يجب مراجعة جميع النتائج يدويًا والتعامل معها كدليل تقييم وليس كحكم أمني تلقائي.
شغّل هذه الأداة فقط ضد أصل عندما يكون لديك تفويض واضح من مالك الأصل. يجب أن يحدد التفويض الهدف، ونافذة الاختبار المسموح بها، والتقنيات المسموح بها، وعناوين IP المصدر، ومتطلبات التعامل مع البيانات، وجهات اتصال التصعيد، وشروط الإيقاف.
لا تختبر أبدًا الأنظمة المتصلة بالإنترنت لمجرد أنها قابلة للوصول. الوصول ليس إذنًا.
قد تنتج أوضاع التقييم معلومات حول قواعد البيانات أو الجداول أو الأعمدة أو السجلات. تعامل مع جميع المخرجات باعتبارها حساسة على الأرجح. خزّن التقارير باستخدام ضوابط وصول مناسبة، وتجنب وضع الأسرار في سجل الصدفة، وشفر التقارير عندما تتطلب قواعد مشاركتك ذلك، واحذف البيانات المؤقتة بأمان بعد انتهاء المشاركة.
قبل بدء التقييم، تأكد من أن لديك نسخة احتياطية معروفة الجودة أو إجراء استرداد، وقناة اتصال مع مالك النظام، وخطة تراجع أو إيقاف موثقة. فضّل بيئة اختبار معزولة كلما توفرت. استخدم الوضع الأقل تدخلاً الذي يجيب على سؤال التقييم.
سير العمل الموصى به منظم على مراحل عن قصد بحيث يمكن للمقيّمين البدء بالنشاط الأقل تأثيرًا وزيادة النطاق فقط عند التفويض.``` ┌──────────────────┐ │ Define scope │ Confirm written authorization and test boundaries └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Detect │ Identify phpMyAdmin and collect version indicators └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Verify │ Perform controlled vulnerability checks └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Assess, if │ Continue only when explicitly authorized │ approved │ └────────┬─────────┘ │ ▼ ┌──────────────────┐ │ Report │ Preserve evidence, limits, timestamps, and conclusions └──────────────────┘
يجب مراجعة النتيجة الإيجابية مقابل إصدار الهدف، وسياق المصادقة، وأدلة الطلب، ونطاق الاختبار. أما النتيجة السلبية فلا تُثبت أن النشر آمن؛ فقد تعكس اختلافات في الإصدار، أو ضوابط الوصول، أو التوجيه، أو تخصيص التطبيق، أو تحديد المعدل، أو عدم كفاية الرؤية.
---
## المتطلبات
### متطلبات التشغيل
| المتطلب | الخط الأساسي المدعوم |
| --- | --- |
| نظام التشغيل | Linux أو macOS أو Windows |
| Python | 3.6 أو أحدث، وفقًا لتوافق التبعيات |
| مدير الحزم | `pip` |
| التحكم في الإصدارات | Git، عند التثبيت من المستودع |
| الوصول إلى الشبكة | اتصال بهدف تقييم مُصرَّح به صراحةً |
### تبعيات Python
يتوقع المشروع حاليًا الحزم التالية:```
requests>=2.31.0
rich>=13.7.0
colorama>=0.4.6
dataclasses>=0.6; python_version < "3.7"
للتثبيتات القابلة لإعادة الإنتاج، يُفضَّل استخدام ملف requirements.txt الخاص بالمستودع على تثبيت الحزم بشكل فردي.
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit cd phpMyAdmin-CVE-2020-5504-Exploit
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt
chmod +x start.sh quick.sh exploit.py
ابدأ الواجهة الموجّهة باستخدام:```bash
./start.sh
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit Set-Location phpMyAdmin-CVE-2020-5504-Exploit
py -m venv .venv ..venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt
.\start.bat
إذا كانت سياسة تنفيذ PowerShell تمنع تشغيل المشغّل، فاستخدم نقطة دخول PowerShell الموثقة في المستودع في بيئة مصرح بها:```
powershell -ExecutionPolicy Bypass -File .\start.ps1
استخدم هذا فقط عندما يكون requirements.txt غير متوفر أو عندما تتعمد إدارة التبعيات بنفسك:```bash
python -m pip install "requests>=2.31.0" "rich>=13.7.0" "colorama>=0.4.6"
---
## الاستخدام
تستخدم الأمثلة أدناه `https://authorized.example/phpmyadmin` كعنصر نائب. استبدله فقط بهدف يقع صراحةً ضمن نطاقك المعتمد.
### وضع الكشف
وضع الكشف هو نقطة البداية الموصى بها. وهو يهدف إلى تحديد بصمة التطبيق وجمع مؤشرات الإصدار دون محاولة استغلاله.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode detect
الخيارات المختصرة من الواجهة الأصلية مدعومة أيضًا حيثما ينطبق ذلك:```bash python exploit.py -u https://authorized.example/phpmyadmin -m detect
### وضع التحقق
وضع التحقق مخصص لإجراء اختبارات ثغرات أمنية خاضعة للتحكم. لا تستخدمه إلا عندما يسمح نطاق الاختبار صراحةً بنشاط التحقق وتكون بيانات الاعتماد المطلوبة قد قُدمت عبر طريقة معتمدة.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode verify \
--username "$PMADB_USERNAME" \
--password "$PMADB_PASSWORD"
تجنب وضع كلمات المرور الحقيقية مباشرة في الأوامر لأن سطور الأوامر قد تُخزَّن في سجل الصدفة أو تتعرض لفحص العمليات المحلية.
قد ينفذ وضع البحث أنشطة تقييم مصرح بها أوسع نطاقًا وتعدادًا للبيانات. ويجب قصره على بيئات الاختبار المخصصة أو المهام التي تحظى بموافقة كتابية صريحة على النطاق المطلوب.```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode research
--username "$PMADB_USERNAME"
--password "$PMADB_PASSWORD"
--max-databases 20
--max-tables 50
### وضع التشغيل التجريبي
يُعد وضع التشغيل التجريبي مفيدًا للتحقق من بناء الأوامر، ومراجعة سلوك سير العمل، واختبار التكوين دون تنفيذ إجراءات تدخلية.```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--dry-run
وجّه حركة المرور عبر بروكسي اعتراض مصرح به عندما تحتاج إلى فحص الطلبات والاستجابات أثناء الاختبار:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode verify
--proxy http://127.0.0.1:8080
استخدم البروكسي فقط عندما تسمح به قواعد الاشتباك وتم تكوينه لتجنب جمع أو الاحتفاظ بالبيانات الحساسة غير الضرورية.
### تقييم قاعدة البيانات المستهدفة
عندما تحدد وثيقة النطاق قاعدة بيانات محددة، قيّد التقييم على تلك القاعدة حيثما يدعم التنفيذ ذلك:```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode research \
--database target_database \
--max-tables 25
فعّل الإخراج التفصيلي عند التحقيق في اتصال فاشل، أو استجابة غير متوقعة، أو مشكلة في الإعدادات:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode verify
--verbose
### الواجهة التفاعلية
يُوصى باستخدام المُشغِّل التفاعلي للمستخدمين الجدد، لأنه يوفر مطالبات إرشادية، واختيار الوضع، ومؤشرات التقدم، ومخرجات حالة مرمّزة بالألوان.```bash
# Linux/macOS
./start.sh
# Windows
start.bat
تصف أسماء الأوضاع سير العمل المقصود، وليست ضمانًا للسلوك في كل تكوين. راجع قواعد التنفيذ والاشتباك قبل استخدام أي وضع ضد نظام حي.
تعرض واجهة المشروع الحالية الخيارات التالية. شغّل python exploit.py --help للتأكد من أسماء الخيارات الدقيقة المتوفرة في نسختك المحلية.
مهم: تعطيل التحقق من شهادة TLS يُضعف أمان النقل ويجب قصره على ظروف الاختبار المضبوطة. لا تتعامل معه أبدًا كإصلاح إنتاجي.
يمكن للأداة استخدام متغيرات الوكيل القياسية عندما يجب توجيه حركة المرور عبر وكيل مصرح به:```bash export HTTP_PROXY=http://127.0.0.1:8080 export HTTPS_PROXY=http://127.0.0.1:8080
لا تخزِّن بيانات الاعتماد في ملف `.env` مُضمَّن في المستودع. إذا كانت متغيرات البيئة تُستخدم لبيانات اعتماد الاختبار، فاحمِ جلسة shell وامسحها بعد انتهاء الاختبار:```bash
export PMADB_USERNAME='authorized-test-user'
export PMADB_PASSWORD='use-an-approved-secret-source'
# Remove them when finished
unset PMADB_USERNAME PMADB_PASSWORD
أنشئ config.yaml لإعدادات التقييم الدائمة وغير السرية:```yaml
scan:
timeout: 10
retries: 3
max_databases: 50
max_tables: 100
max_columns: 50
max_rows: 100
delay_between_requests: 0.5
report: format: json output: report.json include_sensitive: false
أبقِ بيانات الاعتماد خارج هذا الملف إلا إذا كان الملف محميًا بعملية إدارة الأسرار المعتمدة من مؤسستك. أضف ملفات التكوين المحلية التي تحتوي على قيم حساسة إلى `.gitignore`.
---
## التقارير
يدعم الإطار مخرجات JSON وHTML وTXT. اختر التنسيق الذي يناسب الجمهور ومتطلبات الاحتفاظ بالسجلات الخاصة بالمهمة.
### تقرير JSON
JSON مناسب للأتمتة والأرشفة والإدخال في خطوط معالجة التقييم. يظهر أدناه هيكل تقرير تمثيلي؛ قد تختلف الحقول الدقيقة حسب الإصدار والوضع.```json
{
"scan_info": {
"target": "https://authorized.example/phpmyadmin",
"timestamp": "2024-01-15T10:30:00Z",
"mode": "verify",
"scanner": "CVE-2020-5504 Security Assessment Tool v1.2",
"author": "Sudeepa Wanigarathna"
},
"fingerprint": {
"is_phpmyadmin": true,
"version": "5.0.0",
"confidence": "CONFIRMED"
},
"verification": {
"vulnerable": true,
"confidence": "CONFIRMED",
"status": "VULNERABLE_CONFIRMED"
},
"authentication": {
"authenticated": true,
"user": "authorized-test-user",
"score": 8
},
"extracted_data": {
"databases": ["information_schema", "mysql", "test"]
}
}
مخرجات HTML مخصصة للمراجعة البشرية. يمكن أن تتضمن أقسامًا منسقة، ومؤشرات حالة، وملخصات الأدلة، وبيانات وصفية، وتخطيطات قابلة للطباعة. قم بتخزين التقارير المُنشأة في موقع مُتحكم في الوصول إليه.
مخرجات TXT مفيدة للمراجعة في الطرفية، وجمع السجلات، ومرفقات التذاكر، والبيئات التي لا يكون فيها التنسيق الغني مرغوبًا.
قبل مشاركة تقرير، تأكد من أنه يحتوي فقط على المعلومات المسموح بها في إطار المهمة. راجع عناوين URL، وأسماء المستخدمين، وأسماء قواعد البيانات، وقيم السجلات، وملفات تعريف الارتباط (cookies)، والرموز المميزة (tokens)، وترويسات الطلبات، ومخرجات التصحيح بحثًا عن أسرار أو بيانات شخصية. قم بتنقيح أو إزالة المحتوى الحساس عندما لا يكون ضروريًا لدعم النتيجة.
تم تنظيم المشروع كخط أنابيب تقييم مرحلي:``` Target │ ├── Fingerprinting │ ├── Version detection │ └── Path discovery │ ├── Vulnerability checks │ ├── Controlled verification │ └── Confidence analysis │ ├── Authentication │ ├── CSRF token extraction │ ├── Multi-signal validation │ └── Session management │ ├── Authorized assessment │ ├── Database enumeration │ ├── Table extraction │ └── Scoped data requests │ └── Reporting ├── JSON ├── HTML └── TXT
### طبقة تحليل الاستجابة
تُركّز طبقة تحليل الاستجابة تفسير استجابات HTTP وسلوك التطبيق. توضح الواجهة المفاهيمية التالية المسؤوليات المقصودة:```
ResponseAnalyzer
├── status_code( )
├── content_type()
├── authenticated()
├── error_detected()
├── verification_result()
└── extract_metadata()
تساعد مركزة هذه الفحوصات في الحفاظ على اتساق مراحل تحديد البصمة، والمصادقة، والتحقق، والإبلاغ.
Login request │ ▼ CSRF token extraction │ ▼ Login submission │ ▼ Cookie and session validation │ ▼ Authenticated-page access test │ ▼ Expected-content verification │ ▼ Authenticated result
---
## استكشاف الأخطاء وإصلاحها
### أخطاء شهادة SSL
إذا كانت بيئة الاختبار المُتحكَّم بها تستخدم شهادة داخلية أو شهادة موقّعة ذاتيًا، فاستخدم خيار TLS الخاص بالمشروع فقط عندما يكون الخطر مفهومًا وتسمح بذلك طبيعة المهمة:```bash
python exploit.py \
--url https://authorized.example/phpmyadmin \
--mode detect \
--no-verify-ssl
الحل المفضَّل هو تصحيح سلسلة الشهادات أو إعدادات الثقة بدلاً من تعطيل التحقق.
قم بزيادة المهلة فقط بعد التحقق من التوجيه وإعدادات DNS والبروكسي وتوفر الهدف:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode detect
--timeout 30
استخدم معدلات طلبات وفترات انتظار متحفظة لتجنب وضع حمل غير ضروري على الهدف.
### أخطاء المصادقة
تحقق من صحة حساب الاختبار، وأن الحساب مسموح له بالوصول إلى الهدف، وأن عنوان URL المقدم يشير إلى تثبيت phpMyAdmin الصحيح. راجع المخرجات المفصلة للبحث عن مؤشرات CSRF والكوكيز وإعادة التوجيه ونوع المحتوى دون مشاركة بيانات الاعتماد أو قيم الجلسة.
### حزمة `rich` مفقودة
ثبّت تبعيات المشروع داخل البيئة الافتراضية النشطة:```bash
python -m pip install -r requirements.txt
إذا كان الإصدار الحالي يدعم ذلك، عطّل التنسيق الغني للحصول على تجربة طرفية بسيطة:```bash
python exploit.py
--url https://authorized.example/phpmyadmin
--mode detect
--no-rich
### تم رفض الإذن على Linux أو macOS
اجعل المشغِّل قابلاً للتنفيذ:```bash
chmod +x start.sh exploit.py
تعامل مع النتائج غير المتوقعة كسبب للتوقف والتحقيق. تحقق من إصدار الهدف، وسلوك الوكيل العكسي، وحالة المصادقة، وأدلة الطلب/الاستجابة، والحدود المكوّنة، وسلوك إعادة المحاولة، وما إذا كان أي ضابط أمني آخر قد غيّر الاستجابة. لا تعد تشغيل وضع عالي التأثير مرارًا وتكرارًا لمجرد الحصول على نتيجة مفضّلة.
يوصي التقرير الرسمي من phpMyAdmin بترقية التثبيتات المتأثرة على النحو التالي:[1]
| الخط المتأثر | الإصدارات المتأثرة | الإجراء الموصى به |
|---|---|---|
| phpMyAdmin 4.x | قبل 4.9.4 | الترقية إلى 4.9.4 أو أحدث. |
| phpMyAdmin 5.x | 5.0.0 | الترقية إلى 5.0.1 أو أحدث. |
يجب على المؤسسات أيضًا مراجعة صلاحيات حسابات MySQL، وتقييد الوصول إلى الواجهات الإدارية، وفرض مصادقة قوية، وتحديد التعرض الشبكي، ومراقبة النشاط الإداري، واتباع إرشادات البائع الحالية للإصدارات والأمان. هذه الإجراءات مكمّلة للتصحيح؛ ولا تغني عنه.
بعد المعالجة، كرر التحقق في بيئة معتمدة واحتفظ بالأدلة التي تُظهر الإصدار المثبّت، ومسار النشر، وتاريخ الاختبار، والنتيجة. تجنّب اختبار أنظمة الإنتاج ما لم يكن التفويض يتضمن صراحةً التحقق بعد المعالجة.
git clone https://github.com/CerberusMrXi/phpMyAdmin-CVE-2020-5504-Exploit cd phpMyAdmin-CVE-2020-5504-Exploit
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements-dev.txt
على نظام ويندوز، قم بتفعيل البيئة باستخدام:```
.\.venv\Scripts\Activate.ps1
python -m pytest tests/
### توقعات جودة الكود
يجب أن تتبع المساهمات معيار PEP 8، واستخدام تلميحات الأنواع (type hints) حيثما كان ذلك عمليًا، وتضمين سلاسل توثيق (docstrings) وصفية، والحفاظ على معالجة واضحة للأخطاء، وتجنب تسجيل بيانات الاعتماد أو الكوكيز أو الرموز المميزة أو البيانات المستخرجة غير الضرورية. التغييرات التي تؤثر على نطاق التقييم أو سلوك الطلبات أو المصادقة أو إعداد التقارير يجب أن تتضمن اختبارات وتحديثات للتوثيق.
### الهيكل المقترح للمستودع```
.
├── exploit.py
├── requirements.txt
├── requirements-dev.txt
├── config.yaml.example
├── start.sh
├── start.bat
├── start.ps1
├── tests/
├── docs/
│ └── images/
└── reports/
لا تقم بتضمين التقارير المُولَّدة أو بيانات الاعتماد أو آثار الجلسات أو البيانات الخاصة بالهدف في الالتزامات (commits). أضفها إلى .gitignore عند الاقتضاء.
نرحب بالمساهمات عندما تعمل على تحسين الموثوقية أو التوثيق أو تغطية الاختبارات أو إمكانية الوصول أو مسارات التقييم الآمنة.
انسخ المستودع (Fork).
أنشئ فرعاً مركّزاً، مثل feature/improved-fingerprint-parser.
نفّذ أصغر تغيير متماسك يحل المشكلة.
أضِف الاختبارات والتوثيق أو حدّثهما.
شغّل مجموعة الاختبارات محلياً.
نفّذ عملية Commit برسالة واضحة.
ادفع الفرع وافتح طلب سحب (pull request) يصف التغيير والاختبارات التي أُجريت وأي آثار أمنية أو توافقية.```bash git checkout -b feature/improved-fingerprint-parser git add . git commit -m "Improve fingerprint result handling" git push origin feature/improved-fingerprint-parser
يرجى عدم تقديم تغييرات تضيف أهدافًا غير مصرح بها، أو تضعف وسائل الحماية، أو تكشف بيانات اعتماد حقيقية، أو تتضمن بيانات من أنظمة حيّة، أو تشجع على إجراء اختبارات خارج نطاق موثق.
---
## سجل التغييرات
### الإصدار 1.2
- تم إصلاح خطأ سمة التفاصيل في `FingerprintResult`.
- تمت إضافة مسار احتياطي عند عدم توفر تنسيق الطرفية الغنية.
- تم تحسين أنماط اكتشاف الإصدارات.
- تم تعزيز معالجة الأخطاء في جميع أنحاء سير العمل.
- تمت إضافة التحكم في التحقق من TLS للاختبار الخاضع للتحكم.
- تم تحسين التوافق عبر المنصات.
### الإصدار 1.1
- تمت إضافة وحدة مخصصة لتحديد البصمة.
- تم تنفيذ وضع تحقق آمن.
- تمت إضافة التحقق متعدد الإشارات للمصادقة.
- تمت إضافة توليد تقارير شاملة.
- تم دمج واجهة الطرفية الغنية.
### الإصدار 1.0
- الإصدار الأولي.
- تمت إضافة وظيفة تقييم حقن SQL الأساسية.
- تمت إضافة تعداد قاعدة البيانات.
- تمت إضافة إخراج JSON.
---
## الترخيص
هذا المشروع مرخص بموجب رخصة MIT. راجع ملف [LICENSE](https://github.com/cerberusmrxi/phpmyadmin-cve-2020-5504-exploit/blob/HEAD/LICENSE) للحصول على النص الكامل.```
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
يُوفَّر البرنامج دون أي ضمان. راجع ملف LICENSE الكامل قبل إعادة توزيع المشروع.
يتقدّم هذا المشروع بالشكر إلى فريق phpMyAdmin على نشرة الأمان والتصحيحات التي أصدرها، وإلى الباحثين الذين أبلغوا عن الثغرة، وإلى القائمين على صيانة المكتبات مفتوحة المصدر التي يستخدمها الإطار.
| القناة | الرابط |
|---|---|
| المؤلف | Sudeepa Wanigarathna |
| الملف الشخصي على GitHub | @sudeepawanigarathna |
عند الإبلاغ عن ثغرات في هذا المشروع، تجنّب نشر التفاصيل الحساسة علنًا. استخدم جهة اتصال أمنية خاصة أو عملية الإبلاغ الأمني الموثقة في المستودع بمجرد إعدادها.
https://www.phpmyadmin.net/security/PMASA-2020-1/ "نشرة أمان phpMyAdmin PMASA-2020-1"
https://nvd.nist.gov/vuln/detail/CVE-2020-5504 "قاعدة بيانات الثغرات الوطنية NIST: CVE-2020-5504"
الأمان من خلال الإفصاح المسؤول.
| المجال | الإمكانية | الوصف |
|---|
| الاكتشاف | بصمة آلية | يحدد نشرات phpMyAdmin المحتملة ويجمع مؤشرات الإصدار. |
| التحقق | التحقق من الثغرة | ينفذ فحوصات متحكم فيها مع معالجة نتائج موجهة بالثقة. |
| سير العمل | أوضاع تشغيل متعددة | يدعم سير عمل الكشف والتحقق والبحث والتشغيل التجريبي. |
| التعامل مع الجلسات | إدارة رمز CSRF | يستخرج ويدير القيم المتعلقة بـ CSRF المطلوبة في تدفق التطبيق. |
| المصادقة | تحقق متعدد الإشارات | يستخدم مؤشرات متعددة للحد من نتائج المصادقة الخاطئة. |
| التقييم | تعداد قواعد البيانات | يدعم التعداد المصرح به لقواعد البيانات والجداول والأعمدة وبيانات محددة. |
| بحث الحقن | تقنيات عمياء | يدعم سير عمل بحث قائم على القيمة المنطقية والوقت حيثما يفعّلها التنفيذ. |
| الإبلاغ | JSON وHTML وTXT | ينتج مخرجات منظمة ومنسقة ونصية عادية لجماهير مختلفة. |
| الموثوقية | إعادة المحاولة والتراجع | يعيد محاولة الطلبات العابرة بسلوك قابل للتكوين. |
| التكاملات | دعم الوكيل | يمكن استخدامه مع Burp Suite أو وكيل اعتراض HTTP آخر. |
| سهولة الاستخدام | واجهة طرفية غنية | يوفر مخرجات ملوّنة ومؤشرات تقدم ورسائل حالة مقروءة. |
| التشخيص | تسجيل مفصّل | يكشف معلومات تشخيصية إضافية لاستكشاف الأخطاء المصرح به. |
| الوضع | الغرض | الأثر المتوقع | الاستخدام الموصى به |
|---|
detect | التعرف على بصمة التطبيق وتحديد مؤشرات الإصدار. | لا شيء أو ضئيل | استطلاع أولي في نطاق مصرح به. |
verify | اختبار ما إذا كان الهدف يبدو عرضة للثغرات باستخدام فحوصات مضبوطة. | منخفض | تأكيد أثناء تقييم مصرح به. |
research | إجراء تقييم أوسع وتعداد مصرح به. | مرتفع | مختبرات مخصصة أو مهام بموافقة صريحة. |
dry-run | محاكاة سلوك سير العمل دون تنفيذ إجراءات تدخلية. | لا شيء | التحقق من الإعدادات والأوامر. |
| الخيار | الوصف | مثال |
|---|
-u, --url | عنوان URL الأساسي لـ phpMyAdmin المصرح به. | --url https://authorized.example/phpmyadmin |
-m, --mode | يحدد detect أو verify أو research. | --mode verify |
--dry-run | يحاكي سير العمل دون إجراءات تدخلية. | --dry-run |
--username | اسم المستخدم لحساب اختبار مصرح به. | --username "$PMADB_USERNAME" |
--password | كلمة المرور لحساب اختبار مصرح به. | --password "$PMADB_PASSWORD" |
-p, --proxy | عنوان URL لخادم وكيل HTTP. | --proxy http://127.0.0.1:8080 |
-f, --format | تنسيق التقرير مثل json أو html أو txt. | --format html |
-o, --output | مسار ملف الإخراج. | --output report.html |
-d, --database | يقصر النشاط على قاعدة بيانات محددة حيثما كان ذلك مدعومًا. | --database target_database |
-t, --timeout | مهلة الطلب بالثواني. | --timeout 30 |
--max-databases | الحد الأقصى لعدد قواعد البيانات المراد تعدادها. | --max-databases 20 |
--max-tables | الحد الأقصى لعدد الجداول المراد تعدادها. | --max-tables 50 |
--max-columns | الحد الأقصى لعدد الأعمدة المراد تعدادها. | --max-columns 50 |
--max-rows | الحد الأقصى لعدد الصفوف التي يمكن طلبها حيثما كان ذلك مدعومًا. | --max-rows 100 |
-v, --verbose | يفعّل مخرجات التشخيص. | --verbose |
--no-verify-ssl | يعطل التحقق من شهادة TLS للاختبارات المضبوطة فقط. | --no-verify-ssl |
--no-rich | يعطل تنسيق الطرفية الغني. | --no-rich |
| متتبّع المشكلات | مشكلات المستودع |
| البريد الإلكتروني | [email protected] |