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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
drupal-htmx-attr — دروبال 11.4.8 - عالية - عن بُعد - XSS - لا يزال AttributeXss يسمح بسمات HTMX | Kitploit
أدوات/GitHubGitHub/abraxas/drupal-htmx-attr
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/drupal-htmx-attr

drupal-htmx-attr

دروبال 11.4.8 - عالية - عن بُعد - XSS - لا يزال AttributeXss يسمح بسمات HTMX

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - drupal-htmx-attr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-htmx-attr

المقال التقني: https://abraxaslabs.tech/research/drupal-htmx-attr

drupal-htmx-attr

الفئة: XSS مخزّن الوصول: عن بُعد

نواة Drupal 11.4.8 (61044508) - Drupal

أغلقت SA-CORE-2026-011 سمات HTMX في Xss::attributes(). تمرّ سمات الروابط والقوائم عبر AttributeXss::sanitizeAttributes، ولا تزال قائمة التجاوز تلك تُسقط style وon* فقط.

محرّر محتوى يستطيع تعيين حقل Link (أو رابط قائمة) يمكنه تخزين hx-on-click أو data-hx-on-click. يُحمّل Standard مع BigPipe الوحدة core/htmx. وعندما يفتح مسؤول أو أي مشاهد آخر تلك العقدة وينقر على الرابط، تُشغّل HTMX جافاسكربت المخزّن في أصل الموقع.

المعرّفلا يوجد CVE بعد
الفئةXSS مخزّن (سمات أحداث HTMX)
الوصولعن بُعد (كاتب حقل Link / قائمة موثّق؛ الضحية يشاهد وينقر)
CWECWE-79
CVSSمرتفع: 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
المنتجنواة Drupal
المتأثر11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
المصادقةمستخدم موثّق يستطيع كتابة حقل Link (أو رابط قائمة). الضحية يشاهد الصفحة وينقر.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

الكاتب: محرّر محتوى يستطيع تعيين options.attributes للرابط (حقل Link، رابط قائمة، JSON:API). الضحية: أي شخص تُحمّل صفحته HTMX (يُحمّل Standard مع BigPipe الوحدة core/htmx)، بما في ذلك مسؤول الموقع الذي ينقر على الرابط.

الصلاحيةالطريقة / المسارالنوعمُثبت مختبريًا أم مُستنتج
تخزين سمات أحداث HTMX على رابطPOST /jsonapi/node/article مع field_link.options.attributes.hx-on-click وdata-hx-on-clickسلامة الحقل المخزّنمُثبت مختبريًا. JSON:API 201، والسمات المخزّنة لا تزال تحتوي hx-on-click
طباعة تلك السمات على <a> الخاص بالعقدةLinkFormatter -> AttributeXss::sanitizeAttributesسلامة HTMLمُثبت مختبريًا. HTML الخاص بـ GET /node/1 يحتوي hx-on-click والعلامة window['DRUPAL-HTMX-ATTR-WITNESS']=1
تشغيل ذلك الجافاسكربت في أصل الضحية عند النقرتربط HTMX hx-on-*سلامة جلسة الضحيةمُستنتج من HTMX + تحميل الصفحة لـ core/htmx. لم يُجرِ المختبر نقرة متصفح فعلية
التصرف بصفة المشاهد (كوكي الجلسة، نقرات واجهة المسؤول)نفس XSS المخزّنسلامة جلسة الضحيةمُستنتج. يتوقف المختبر عند بقاء السمة في HTML
سلبي: Xss::filterXss::filter('<a ... hx-on-click=...>')مغلقمُثبت مختبريًا أنه مغلق. xss_keeps_hx=False
كتابة الرابط دون مصادقةJSON:API دون جلسةمغلقسجّل المختبر الدخول باسم uid 1 أولًا. لا يستطيع غريب بلا حساب تعيين الحقل
RCE عبر PHP / LPEلا ينطبقمغلقهذا المتبقي جافاسكربت متصفح، وليس PHP على الخادم

متبقٍ من نفس التثبيت: Move Block sibling markup.

كيف وجدته

ثبّتُ drupal/drupal 11.4.8 بعد SA-CORE-2026-011. خمس عمليات بحث: XSS/HTMX، وملفات/MIME/oEmbed، وJSON:API/unserialize/SQLi، والمصادقة/CSRF/Host، وREST/media/Views. تبقى معالجات وصول JSON:API، ومفاتيح IN في EntityQuery (SA-004)، وPOI للحقول المتسلسلة (SA-005)، وHost في rebuild.php (SA-007) مُرقَّعة. وقد وصلت قائمة تخطي HTMX إلى Xss.php فقط.

$skip = (
  in_array($attribute_name, ['style', 'srcdoc']) ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, 'data-hx') ||
  str_starts_with($attribute_name, 'hx') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

AttributeXss.php المتبقي:

$skip = (
  $attribute_name == 'style' ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

يشمل المستدعين LinkFormatter.php وMenuLinkContent::getUrlObject().

المنعطفات الخاطئة المسجّلة مسبقًا: التعامل مع Xss::filter على أنه المتبقي (فهو الضابط)؛ كتابة JSON:API غير الموثّقة؛ PHP RCE؛ صدفة عكسية. مسرح. المرجع هو السمة المتبقية على HTML العقدة بالإضافة إلى core/htmx المحمّل.

المختبر

python3 drupal-htmx-attr-Abraxas-Labs.py

أو

cd lab
./run.sh

استهدف فقط http://127.0.0.1:19480. نسخة حيّة drupal:11.4.8-apache، ملف تعريف Standard، كتابة JSON:API مُفعّلة للمختبر. مشروع Compose drupal-htmx-attr.

SUCCESS drupal-htmx-attr how=live write=jsonapi nid=1 hx-on-click=kept jsonapi-stored=1 xss-filter=stripped htmx=loaded marker=1 version=11.4.8 DRUPAL-HTMX-ATTR-WITNESS

الإصلاح

انسخ قائمة الحظر hx / data-hx / srcdoc إلى AttributeXss. وادمجها في Xss كما يذكر تعليق توثيق الفئة بالفعل.

المراجع

  • github.com/drupal/drupal وسم 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • AttributeXss.php · Xss.php
  • مُرقَّع قريبًا: SA-CORE-2026-011
  • نفس التثبيت: drupal-move-block-markup
  • CWE-79

الترخيص

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

تنزيل الأداة