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
9510il 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é

Télécharger l’outil
É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

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)

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.