Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
element-ics-javascript — Element Web v1.12.29 - عالي - عن بُعد - XSS - رابط Univention ICS navigation.json يصبح javascript: menu href | Kitploit
أدوات/GitHubGitHub/abraxas/element-ics-javascript
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراق
GitHubabraxas/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - عالي - عن بُعد - XSS - رابط Univention ICS navigation.json يصبح javascript: menu href

عرض المستودع
2منذ 9 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - element-ics-javascript

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-ics-javascript

تقرير: https://abraxaslabs.tech/research/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - Element / New Vector

الفئة: XSS الوصول: عن بُعد

وحدة لافتة Univention تجلب ملف ICS ‏navigation.json، وتقبل حقل link لكل مُدخل بصيغة z.string() دون التحقق من المخطط، ويضع ملف Menu.tsx تلك السلسلة في وسم <a href> منسّق. يستخدم إعداد القائمة الثابت z.url() لحقل link_url. أما مسار ICS فلا يفعل ذلك. معاينة الروابط على نفس الإصدار المثبّت ترفض بالفعل javascript: ‏(previewFromBundle، GHSA-9r5h). هذا ليس الوضع الافتراضي لـ app.element.io. فهو يتطلب modules/banner مع menu.type بقيمة univention، إضافةً إلى ملف ICS يثق به النشر.

أي شخص يستطيع تعديل ملف navigation.json ذلك يمكنه زرع javascript: أو data:. المستخدم المسجّل الدخول الذي يفتح قائمة اللافتة وينقر على العنصر يشغّل سكربتًا على أصل Element.

المعرّفلا يوجد CVE بعد
CWECWE-79 / CWE-20
CVSSمتوسط: 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
المنتجElement Web
المتأثروسم v1.12.29 ‏v1.12.29 ‏(2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). مقيّد: لافتة Univention + ICS.
المصادقةمشغّل ICS / اختراق ICS. الضحية مستخدم مسجّل الدخول ينقر على عنصر القائمة.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

اختراق أو تشغيل ICS الذي يثق به نشر Element. ضع رابط javascript: (أو data:) في navigation.json. انتظر حتى يفتح مستخدم مسجّل الدخول قائمة اللافتة وينقر على العنصر. هذا يعني الاستيلاء على حساب Matrix: رمز الوصول، ومخزن التشفير، والجلسة. وهو ليس تنفيذ أوامر عن بُعد على مستوى نظام التشغيل. فلا يزال سطح المكتب يعمل مع تعطيل nodeIntegration ووجود صندوق عزل.

الصلاحيةالطريقة / نقطة الوصولالاستطلاع / السلامة / التوافرمُثبت مختبريًا أو مُستنتج
عرض <a href="javascript:…"> في قائمة اللافتة على أصل ElementICS ‏navigation.json ‏entries[].link -> navigationToConfig ‏link_url -> Menu.tsx ‏LinkButton href={link.link_url}سلامة DOM الخاصة بالقائمةمُثبت مختبريًا. رابط ICS الوهمي javascript:ELEMENT-ICS-JAVASCRIPT-WITNESS أصبح ذلك الـ href. ولا يزال رابط بوابة https يُعرض
تشغيل سكربت بأصل Element بعد النقرالضحية ينقر على عنصر القائمة (UI:R)السلامةمُستنتج من نقطة وصول href. لم يقُد المختبر نقرة متصفح أو يسرق رمز Matrix حيًّا
قراءة رمز وصول Matrix / مخزن التشفير (الاستيلاء على الحساب)سكربت داخل الأصل مقابل localStorage / جلسة IndexedDBالاستطلاع / السلامةمُستنتج من XSS بأصل Element. شاهد المختبر هو سلسلة href
توجيه تبويب Element إلى صفحة تصيّدإطار iframe غير معزول في SilentLogin.tsx ‏src={new URL("silent", icsUrl)}السلامةمُثبت مختبريًا أن الإطار iframe لا يحتوي على sandbox. لم يُجرَّب التوجيه العلوي
نفس الزرع عبر data:z.string() يقبل أي مخططالسلامةمُستنتج. زرع المختبر javascript: فقط

مغلق على هذا التثبيت: default app.element.io (بدون لافتة Univention). OS RCE / LPE (سطح المكتب nodeIntegration: false، sandbox، contextIsolation). Timeline HTML XSS. معاينة URL javascript: (GHSA-9r5h previewFromBundle يتطلب http:/https:). HTML export XSS (GHSA-wqmv). Widget media token (GHSA-3jm3). اللافتة الثابتة link_url: z.url() هي إعداد المشغّل، وليست ICS؛ كما أن z.url() ليست قائمة سماح لـ http/https.

بقايا نفس التثبيت: fragment guest wipe، vector: Windows drive-letter.

كيف وجدته

ثبّتت Element Web v1.12.29 بعد إصدار GitHub في 22 سبتمبر 2026. تعلّمت معاينة URL بالفعل http:/https: بالطريقة الصعبة. لا يزال link الخاص بـ Univention ICS هو z.string(). يستخدم إعداد القائمة الثابتة z.url(). مسار الجلب لا يمر أبدًا عبر ذلك الفحص.

مسارات خاطئة مسجّلة بالفعل: اعتبار default app.element.io هو الضحية (Univention محمي ببوابة)؛ اعتبار z.url() قائمة سماح للمخططات (مُنشئ URL يقبل javascript:)؛ تضخيم click XSS إلى OS RCE. reverse shell. مسرح.

المختبر

أداة من دوال التثبيت بالإضافة إلى navigation.json وهمي لـ ICS. ليس حاوية Element Web حية. how=gadget. أدى تطبيق قائمة السماح http/https لمعاينة URL (previewFromBundle) إلى إسقاط href الخاص بـ javascript والإبقاء على رابط بوابة https.

python3 element-ics-javascript-Abraxas-Labs.py

أو

cd lab
./run.sh

استهدف فقط http://127.0.0.1:19620. مشروع Compose element-ics-javascript. تُفكَّك الحزمة بعد التشغيل.

SUCCESS element-ics-javascript how=gadget href-scheme=javascript menu-a-javascript=yes allowlist-rejects=yes silent-no-sandbox=yes ELEMENT-ICS-JAVASCRIPT-WITNESS

الإصلاح

اسمح بـ http: وhttps: في link الخاص بـ ICS بالطريقة نفسها التي يفعلها previewFromBundle. ارفض javascript: وdata: والمخططات الأخرى قبل href=. ضع الـ iframe الصامت في وضع العزل (sandbox) (sandbox="" أو على الأقل بدون allow-top-navigation). لا تتعامل مع z.url() كقائمة سماح للمخططات.

المراجع

  • github.com/element-hq/element-web وسم v1.12.29
  • navigation.ts
  • Menu.tsx
  • SilentLogin.tsx
  • قريب مُرقَّع (وليس هذا الـ href): GHSA-9r5h previewFromBundle
  • نفس التثبيت: element-fragment-guest · element-vector-drive-letter
  • CWE-79

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة