مقدمة الأداة
- أول EXP في العالم بملف واحد يستغل ثغرة CVE-2023-4357 Chrome XXE، لتحقيق سرقة الملفات المحلية للزوار.
- أول EXP في العالم بملف واحد يستغل ثغرة CVE-2023-4357 Chrome XXE، مما يسمح للمهاجمين بالحصول على الملفات المحلية للزوار.
| اسم الملف | الوصف | سيناريو الاستغلال | لماذا يمكن تحقيق استغلال الثغرة بملف واحد / payload واحد؟ |
|---|
| d.svg | استغلال بملف واحد، دون الحاجة إلى الاعتماد على ملفات أخرى | 1. عند وجود XSS، قم بتضمين رابط svg داخل iframe. 2. عند النقر على الزر، افتح صورة svg في نافذة جديدة. | احتواء ذاتي. يتم اعتراض إعلان الكيان الأول الذي يشير إلى كيان خارجي، لذا تمت الفكرة عبر تضمين الملف نفسه كوثيقة XML خارجية (احتواء ذاتي)، ثم القيام بإعلان ثانٍ للكيان يشير إلى كيان خارجي، مع اشتراط أن يكون تنسيقا المرجعين متوافقين دون التسبب في أخطاء، وبذلك يمكن تجاوز الاعتراض وقراءة الملفات المحلية. |
| xss.html | استغلال بـ payload واحد، دون الحاجة إلى الاعتماد على ملفات أخرى | عند وجود XSS وعدم الرغبة في رفع ملف svg على أي موقع، انسخ محتوى xss.html كـ payload. | عنصر object، وdata:image/svg+xml;base64، وdata:text/xsl;base64 |
مشاركة مثيرة للاهتمام
- تم استخدام هذا الـ EXP أحادي الملف كمصدر لفكرة أحد التحديات في مسابقة
TPCTF 2023 لأمن المعلومات (أُقيمت المسابقة بالتعاون بين TP-Link وجامعة تسينغهوا وجامعة بكين).
- التحديان:
Xssbot و Xssbot but not Internet
- لاحظ المتسابقون الأذكياء تعليقي
//You can send p.innerHTML by POST.: cn-sec وxmcve وjbnrz
- المساهمة بموارد تعليمية مثيرة للاهتمام للقادمين الجدد إلى أمن المعلومات هي أحد أسباب وجود هذا المشروع مفتوح المصدر
نبذة عن الثغرة
| المعلومة | المحتوى |
|---|
| اسم الثغرة | Chromium XXE |
| رقم الثغرة | CVE-2023-4357 |
| مستوى الخطورة | مرتفع |
| نوع الثغرة | XXE |
وصف الثغرة
- يعود جذر الثغرة إلى libxslt. افتراضيًا، يتحقق Chromium بدقة من أن عنوان URL للكيان الخارجي المشار إليه في إعلان كيان وثيقة XML لا يتجاوز النطاق (cross-domain)، لكن إذا قام Chromium أولاً بتحليل الوثيقة كورقة أنماط XSL ثم استدعى document() لتضمين وثيقة XML خارجية، فإنه عندها لا يجري التحقق من تجاوز النطاق لعنوان URL لتلك الوثيقة الخارجية، مما يؤدي إلى تسريب الملفات المحلية للزائر.
النسخ المتأثرة
لقطات إعادة الإنتاج
| بيئة الزائر | لقطة الشاشة |
|---|
| Linux + Chromium |  |
| Windows + Chromium |  |
| MacOS + إصدار Mac من WeChat |
إعادة الإنتاج 1
- بيئة الزائر:
- قم بتنزيل وتشغيل Chrome
wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/114.0.5735.90/linux64/chrome-linux64.zip
unzip chrome-linux64.zip
./chrome-linux64/chrome --no-sandbox
- شغّل خدمة الويب
wget https://codeload.github.com/xcanwin/CVE-2023-4357-Chrome-XXE/zip/refs/heads/main -O CVE-2023-4357-Chrome-XXE.zip
unzip CVE-2023-4357-Chrome-XXE.zip
python3 -m http.server 8888 -d CVE-2023-4357-Chrome-XXE-main
- افتح في المتصفح
http://127.0.0.1:8888/d.svg
إعادة الإنتاج 2
- بيئة الزائر:
- قم بتنزيل وتشغيل Chrome
https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/114.0.5735.90/win64/chrome-win64.zip
./chrome-win64/chrome --no-sandbox
- شغّل خدمة الويب
https://codeload.github.com/xcanwin/CVE-2023-4357-Chrome-XXE/zip/refs/heads/main
python3 -m http.server 8888 -d CVE-2023-4357-Chrome-XXE-main
- افتح في المتصفح
http://127.0.0.1:8888/d.svg
إعادة الإنتاج 3
- بيئة الزائر:
MacOS + إصدار Mac من WeChat
-
قم بتنزيل وتشغيل إصدار Mac من WeChat
-
شغّل خدمة الويب
wget https://codeload.github.com/xcanwin/CVE-2023-4357-Chrome-XXE/zip/refs/heads/main -O CVE-2023-4357-Chrome-XXE.zip
unzip CVE-2023-4357-Chrome-XXE.zip
python3 -m http.server 8888 -d CVE-2023-4357-Chrome-XXE-main
- أرسل إلى مساعد نقل الملفات ثم افتح
http://127.0.0.1:8888/d.svg