
نص استغلال لثغرة CVE-2026-5147، ينفّذ حقن SQL أعمى قائم على القيم المنطقية والزمن ضد واجهات MySQL لاستخراج الإصدار وقاعدة البيانات والمخطط والبيانات. يتضمن معايرة، وأوامر فرعية للتفريغ، وحمولات قابلة للتكوين.
مخصص للتحقق من الثغرات المصرح بها والتدريب في بيئات الاختبار: استغلال حقن SQL في واجهات برمجية لتنفيذ الاستعلام الأعمى المنطقي (Boolean Blind) في MySQL (EXP / INSTR أو ASCII) والاستعلام الأعمى الزمني (Time Blind) (if + ascii + sleep)، مع إمكانية سحب الإصدار واسم قاعدة البيانات وهيكل الجداول والبيانات (سلوك مشابه لخيار --dump في sqlmap).
يرجى عدم الاستخدام على أنظمة غير مصرح بها.
pip install requests
CURRENT_USER + INSTR إلى نقطة الحقن، والتمييز بين فرعي «صحيح / خاطئ» عبر حقل الأعمال في استجابة JSON (الافتراضي code).-p instr أو ascii).--skip-calibrate: تخطي المعايرة أعلاه؛ الاستمرار في التخمين عبر المنطقي + حقل JSON، دون التبديل التلقائي إلى الزمني (مناسب للتصحيح المحلي).يمكن ضبط اسم حقل JSON الذي يُعتبر «صحيح» وقيمته عبر --json-code-field و --json-code-true (يجب أن يتطابق مع واجهة الهدف).
# اسم نطاق فقط: يُلحق المسار الافتراضي (انظر DEFAULT_API_PATH داخل السكربت)
python cve-2026-5147.py -u target.example.com
# تحديد HTTPS ومسار مخصص واسم معامل الحقن
python cve-2026-5147.py -u target.example.com --https --path /api/foo --param id
# تفريغ قاعدة البيانات بالكامل (حجم طلبات هائل، استخدم بحذر)
python cve-2026-5147.py -u target.example.com dump
# سحب أسماء الجداول فقط دون تصدير البيانات
python cve-2026-5147.py -u target.example.com dump --schema-only
التقدم ورسائل التشخيص تظهر في stderr، والملخص النهائي في stdout.
| المعامل | الوصف |
|---|---|
-u / --url | الهدف (اسم نطاق، host:port أو URL كامل)، إلزامي |
--path | المسار الذي يُلحق بالمضيف عند عدم وجود مسار (مسار واجهة المستأجر الافتراضي) |
--https | استخدام https عند غياب البروتوكول (الافتراضي إضافة http://) |
--param | اسم معامل الحقن (الافتراضي website) |
-p / --payload | المقطع المنطقي: instr أو ascii (الزمني ثابت على if+ascii+sleep) |
--timeout | مهلة HTTP (بالثواني)؛ عند الدخول في الزمني تُرفع تلقائياً لتكون ≥ sleep+5 |
--sleep | عدد ثواني sleep() في الاستعلام الأعمى الزمني |
--time-floor | معيار الصحيح: إجمالي الوقت ≥ هذه القيمة (بالثواني)؛ الافتراضي حوالي sleep - 1 |
--json-code-field / --json-code-true | حقل JSON الذي تقرأه القناة الجانبية المنطقية وقيمة «الصحيح» |
--skip-calibrate | تخطي معايرة الاستكشاف |
--only | version / database / both: سحب الإصدار فقط، اسم القاعدة فقط أو كليهما |
-H / -P | رؤوس طلب إضافية، معاملات استعلام إضافية، قابلة للتكرار |
تحت الأمر الفرعي dump توجد أيضاً --schema-only و --dump-out و --dump-row-limit و --dump-select وغيرها، انظر python cve-2026-5147.py -h.
| الأمر الفرعي | المعنى |
|---|---|
info (الافتراضي) | سحب VERSION() واسم القاعدة الحالية DATABASE() (يتأثر بـ --only) |
dump | سحب أسماء جداول القاعدة الحالية، ثم أعمدة كل جدول وبيانات الصفوف (أو المخطط فقط، انظر --schema-only) |
main() يتم أولاً استدعاء calibrate_sqli_oracle، وعند الفشل يصبح effective_detect = "time" مع bind_time_payload؛ وفي الوضع الزمني يتم استدعاء calibrate_time_oracle.--json-code-field (لم يعد مثبتاً على code).command ليكون الأمر الفرعي الافتراضي هو info وليس dump.السكربت مخصص للبحث الأمني والاختبار المصرح به فقط. يتحمل المستخدم مسؤولية التأكد من الامتثال للقوانين المحلية ونطاق التصريح في البيئة المستهدفة.