Exploitation d’une vulnérabilité XSS dans WordPress

September 21, 2025

Les vulnérabilités de type cross-site scripting (XSS) sont des failles courantes et graves dans les applications web, en particulier sur WordPress. Ce blog démontre comment une vulnérabilité XSS peut être exploitée pour créer un compte administrateur non autorisé sur un site WordPress, permettant à un attaquant d’escalader ses privilèges et de prendre le contrôle total.

Qu’est-ce que le XSS ?

Le XSS se produit lorsque des attaquants injectent des scripts malveillants dans des pages web consultées par d’autres utilisateurs. Ces scripts peuvent contourner les politiques de même origine, s’exécuter dans le navigateur des victimes et réaliser des actions non autorisées — comme la création d’un compte administrateur non autorisé — souvent à l’insu des utilisateurs.

Objectif

Dans cette preuve de concept, je montre comment exploiter un thème ou un plugin WordPress vulnérable au XSS. Le script injecté va :

  • Extraire le jeton _wpnonce_create-user, nécessaire pour créer un nouvel utilisateur dans WordPress.

  • Utiliser ce jeton pour effectuer une requête POST, créant ainsi un nouveau compte administrateur sur le site.

Prérequis

  • Une installation WordPress vulnérable.

  • Une vulnérabilité XSS dans un plugin ou un thème.

  • La possibilité d’injecter un fichier JavaScript malveillant.

Processus étape par étape

1. Identifier la vulnérabilité

D’abord, j’ai besoin d’une page vulnérable à exploiter qui permette à des utilisateurs non authentifiés d’injecter du JavaScript dans une page accessible publiquement.

  • Cette vulnérabilité peut être trouvée avec des outils comme WPScan ou en auditant manuellement le code source du site.

  • La page vulnérable est essentielle pour exécuter le script, qui créera ensuite le compte administrateur.

2. Concevoir le script malveillant

J’ai ensuite créé un script qui exploite la vulnérabilité pour créer un compte administrateur non autorisé :

Published On: 21/09/2025Categories: Tutorials249 wordsViews: 536

Don’t miss