
Ce repo décrit cve-2021-29447 et un petit script pour exploiter automatiquement
Ce référentiel détaille la vulnérabilité CVE-2021-29447, une faille de sécurité critique dans WordPress qui permettait des attaques XML External Entity (XXE) authentifiées via la bibliothèque média. Il fournit également un script automatique qui démontre la preuve de concept (PoC).
La vulnérabilité existait dans le traitement des métadonnées des fichiers audio téléchargés par WordPress. Plus précisément :
Cause racine : WordPress utilise la bibliothèque getID3 pour analyser les métadonnées des fichiers média comme les fichiers WAV. Un fichier WAV peut contenir un bloc de données XML appelé iXML. Les attaquants pouvaient créer un fichier WAV malveillant avec du contenu XML qui, lorsqu'il est analysé par la bibliothèque vulnérable, déclenche une attaque XXE.
Versions concernées : WordPress versions 5.6 à 5.7.
Condition clé : L'installation de WordPress doit fonctionner sous PHP 8, car les modifications de la configuration par défaut de Libxml2 dans PHP 8 étaient essentielles pour l'exploitation.
Impact : Une exploitation réussie pourrait conduire à la divulgation arbitraire de fichiers (par exemple, lire wp-config.php pour obtenir les identifiants de la base de données) et à une Server-Side Request Forgery (SSRF)
Ci-dessous se trouve le segment de code qui tente d'analyser les données XML dans le sous-bloc iXML :
Automatise l'ensemble du processus : Crée le fichier WAV malveillant et le DTD, gère le téléchargement du fichier sur le site WordPress cible, et met en place un écouteur pour recevoir les données exfiltrées.
Configurable : Permet de spécifier le chemin du fichier cible pour l'exfiltration.
./payload.sh