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-2026-63030 — WordPress Exploit RCE non autorisé | CVE-2026-63030 | Kitploit
Outils/GitHubGitHub/mhtsec/cve-2026-63030
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubmhtsec/cve-2026-63030

CVE-2026-63030

WordPress Exploit RCE non autorisé | CVE-2026-63030

Voir le dépôt
95il 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

CVE-2026-63030

PoC complet d'une chaîne d'exploitation menant à la création non authentifiée d'un administrateur → exécution de code à distance (RCE) via confusion de routage batch + injection SQL dans l'API REST de WordPress.

Réservé aux tests de sécurité autorisés, à la reproduction de vulnérabilités et à la recherche. Interdit sur des cibles non autorisées.

Résumé de la vulnérabilité

ÉlémentDescription
CVECVE-2026-63030
ComposantWordPress Core REST API (/batch/v1)
Versions affectéesWordPress 6.9.0 – 6.9.4, 7.0.0 – 7.0.1 (selon l'annonce officielle)
Prérequis d'attaqueLa cible active le batch de l'API REST ; le site dispose d'au moins un article ou une page publié
Exigence de privilègesAucune authentification requise (Pre-Auth)
ImpactCréation d'un compte administrateur, puis téléversement d'un plugin pour obtenir une RCE

Chaîne d'attaque

root@kitploit:~
REST batch 路由混淆
    → author__not_in SQL 注入
    → UNION 伪造 WP_Post / oEmbed cache / Customizer changeset
    → Customizer 发布时切换为已有管理员上下文
    → REST /wp/v2/users 创建新管理员
    → 后台上传一次性插件
    → 执行系统命令

Le cœur du problème n'est pas l'« écriture en base par empilement », mais :

  1. L'étape de validation et l'étape de distribution de serve_batch_request_v1() ne synchronisent pas les index $matches / $validation, ce qui provoque une confusion de route.
  2. Une fois désalignée, la chaîne author_exclude entre dans author__not_in de WP_Query, est concaténée dans NOT IN (...), et constitue une injection SQL.
  3. Grâce à UNION SELECT, une ligne complète de wp_posts est falsifiée pour déclencher la logique oEmbed / Customizer et basculer le contexte utilisateur courant vers un administrateur existant.
  4. En tant qu'administrateur, l'interface REST de création d'utilisateurs est appelée pour créer un nouvel administrateur.
  5. Connexion à l'interface d'administration, téléversement d'un plugin et exécution de commandes.

Exigences environnementales

  • Python 3.10+ (bibliothèque standard uniquement, aucune dépendance tierce)
  • La cible est une instance WordPress que vous êtes autorisé à tester
  • Le PHP cible doit conserver au moins une fonction d'exécution (proc_open / passthru / system / shell_exec / exec / popen selon le cas)
  • Si disable_functions désactive toutes les fonctions d'exécution de commandes, la création de l'administrateur peut toujours réussir, mais l'étape RCE échouera

Description des fichiers

root@kitploit:~
CVE-2026-63030/
├── exp.py        # Script d'exploitation complet (un seul fichier, zéro dépendance)
└── README.md     # Cette documentation

Utilisation

Utilisation minimale (génère automatiquement un administrateur, exécute id par défaut)

root@kitploit:~
python3 exp.py --url http://192.168.1.10:8080/

Personnalisation de tous les paramètres

root@kitploit:~
python3 exp.py --url http://192.168.199.134:9005/ --username mht --password 'mht666' --email [email protected] --command 'id' --timeout 60

Description des paramètres

Exemple de sortie attendue

root@kitploit:~
[*] Creating administrator via SQLi -> customizer bridge...
[+] Generated administrator: labadmin
[*] Password: S3cure!pass
[*] Email: [email protected]
[*] Logging in as generated administrator...
[+] Authenticated.
[*] Uploading one-shot command plugin...
[*] Plugin path: http://192.168.1.10:8080/wp-content/plugins/lab_wp2_cmd_xxxxxxxx/lab_wp2_cmd_xxxxxxxx.php
[*] Executing command: id
[+] command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[via: proc_open]
[*] Deleting generated administrator...
[+] Generated administrator removed.
[*] Cleaning up temporary plugin...
[+] Temporary plugin removed.

À la fin, le script tente de :

  1. Supprimer l'administrateur créé lors de cette exécution
  2. Supprimer le répertoire du plugin temporaire

En cas d'échec en cours de route, procédez à un nettoyage manuel à l'aide des identifiants affichés dans la sortie.

Précautions

  1. Environnement autorisé uniquement : ne pas utiliser contre des systèmes non autorisés.
  2. Restriction de cible : par défaut, le script refuse les cibles saisies sous forme d'adresses IP publiques ; il n'autorise que les adresses privées / de boucle locale / de liaison locale, ou les cibles sous forme de nom de domaine.
  3. Durcissement PHP : si le message has been disabled for security reasons apparaît, cela signifie que disable_functions a désactivé la fonction concernée. Le PoC essaie successivement plusieurs méthodes d'exécution ; si toutes sont désactivées, la RCE n'est pas disponible, mais la phase de création de l'administrateur peut encore aboutir.
  4. Contenu du site : au moins un article ou une page publié est nécessaire pour amorcer le cache oEmbed.
  5. Idempotence et nettoyage : chaque exécution crée un nouvel administrateur et un plugin temporaire ; le chemin de réussite nettoie automatiquement. En cas d'échec, vérifiez manuellement wp-admin/users.php et wp-content/plugins/.

Recommandations de correctif

  • Mettre à niveau vers la version officielle corrigée (selon les bulletins de sécurité WordPress)
  • Si le correctif n'est pas disponible, restreindre temporairement l'accès non authentifié à /batch/v1
  • En production, conserver disable_functions ainsi qu'un utilisateur web aux privilèges minimaux afin de réduire l'impact d'une RCE

Disclaimer

Le code de ce dépôt est destiné uniquement à la recherche en sécurité et à la reproduction autorisée de vulnérabilités. L'utilisateur est tenu de se conformer aux lois locales et au périmètre d'autorisation du système cible. L'auteur décline toute responsabilité en cas d'utilisation abusive.

Télécharger l’outil
ParamètreRequisValeur par défautDescription
--urlOuiAucunURL racine de la cible WordPress
--usernameNonwp2_<hex>Nom d'utilisateur de l'administrateur à créer
--passwordNonWp2!<random>Mot de passe de l'administrateur à créer
--emailNon<username>@wp2shell.invalidAdresse e-mail de l'administrateur à créer
--command / -cNonidCommande exécutée via le plugin à usage unique
--timeoutNon60Délai d'expiration HTTP par requête (secondes)