
AVERTISSEMENT : Ceci est une application vulnérable pour tester l'exploit du contournement du contrôle d'accès Jetpack < 13.9.1 (CVE-2024-9926). Exécutez-le à vos propres risques !
Ceci est une application vulnérable pour tester l'exploit du contrôle d'accès défaillant de Jetpack < 13.9.1 (CVE-2024-9926).
Cette application contient des vulnérabilités de sécurité graves. Utilisez-la à vos propres risques ! Il est recommandé de l'utiliser dans un environnement sauvegardé et isolé (comme une machine virtuelle avec un snapshot récent et un réseau hôte uniquement). Ne téléchargez pas cette application sur des serveurs accessibles depuis Internet, car ils seront compromis.
AVERTISSEMENT : Je décline toute responsabilité quant à l'utilisation que quiconque pourrait faire de cette application. Le seul but de cette application est de servir de scénario de test pour l'exploit du contrôle d'accès défaillant de Jetpack < 13.9.1 (CVE-2024-9926) et elle ne doit pas être utilisée de manière malveillante. Si votre serveur est compromis via l'installation de cette application, cela n'est pas de ma responsabilité, mais de celle de la ou des personnes qui l'ont téléchargée et installée.
Voici les étapes pour configurer l'environnement :
./up.sh pour démarrer la composition.Le conteneur s'appellera vuln-wp-jetpack.
Pour démonter l'environnement, utilisez la commande ./down.sh ou ./down_and_delete.sh pour également supprimer les images et le volume de la base de données.
En regardant le correctif, il est trivial de comprendre que la seule vérification effectuée, à la fois par les méthodes get_items_permissions_check() et get_item_permissions_check(), est l'appartenance de l'utilisateur au blog.
Les deux méthodes sont déclarées dans la classe Contact_Form_Endpoint du fichier automattic/jetpack-forms/src/contact-form/class-contact-form-endpoint.php. Comme le dit le commentaire au début de la classe, cette classe est...
Utilisée comme paramètre
rest_controller_classlorsque le type de publicationfeedbackest enregistré dans\Automattic\Jetpack\Forms\ContactForm\Contact_Form
Cela peut être vu dans le fichier automattic/jetpack-forms/src/contact-form/class-contact-form-plugin.php à la ligne 201, où le type de publication personnalisé feedback est enregistré.
Les types disponibles peuvent être récupérés via les API REST avec une requête comme la suivante.
GET /?rest_route=/wp/v2/types
La réponse contient le type feedback.
Pour exploiter la vulnérabilité, une requête comme la suivante est suffisante.
GET /?rest_route=/wp/v2/feedback
La requête doit contenir un en-tête d'autorisation avec un Application Password comme ceci.
Authorization: Basic eW91cl91c2VybmFtZTp5b3VyX2FwcGxpY2F0aW9uX3Bhc3N3b3Jk
Un script d'exploit en Python peut être trouvé ici.
Ce projet est sous licence Unlicense - voir le fichier LICENSE pour plus de détails.