Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-60137 — wpsqli — extracteur + dump SQLi complet pour CVE-2026-60137 | Kitploit
Outils/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsSécurité WebTests d'IntrusionSécurité des Bases de Données

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
GitHubadarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli — extracteur + dump SQLi complet pour CVE-2026-60137

Voir le dépôt
20il y a 1 moisPas encore vérifié

wpsqli - Extracteur SQLi WordPress (CVE-2026-60137)

Un outil rapide d'extraction de bases de données, piloté par menu, exploitant la vulnérabilité d'injection SQL author__not_in dans le cœur de WordPress. Cet outil se concentre uniquement sur l'énumération et l'extraction de bases de données, en utilisant la confusion de route du lot REST (CVE-2026-63030) pour atteindre le sink SQLi sans authentification.


Table des matières

  • Vue d'ensemble
  • Chaîne de vulnérabilités
  • Versions affectées
  • Fonctionnalités
  • Installation
  • Utilisation
  • Options du menu
  • Modes d'extraction
  • Performance
  • Avertissement légal

Vue d'ensemble

wpsqli est un outil 100 % Python conçu pour exploiter une chaîne de vulnérabilités dans le cœur de WordPress permettant une injection SQL non authentifiée dans la base de données. Il contourne la validation de l'API REST de WordPress via un bug de confusion de route de lot, en délivrant une charge utile brute sous forme de chaîne directement au sink SQL de WP_Query.

Cet outil est conçu pour la rapidité et la flexibilité : il tente automatiquement l'extraction en bande basée sur UNION (instantanée), se replie sur l'extraction aveugle booléenne parallèle à 8 threads, puis enfin sur l'extraction temporelle séquentielle si nécessaire.


Chaîne de vulnérabilités

Cet outil enchaîne deux vulnérabilités indépendantes pour parvenir à une extraction de base de données non authentifiée :

Bug A — Injection SQL author__not_in (CVE-2026-60137)

Emplacement : wp-includes/class-wp-query.php, WP_Query::get_posts()

Le paramètre author__not_in n'applique la désinfection absint() que si l'entrée est un tableau. Si une chaîne est transmise, le garde-fou is_array() est contourné, la chaîne traverse implode() sans modification et est concaténée brute dans la clause SQL $where.

// Line 2404: guard only fires for ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Line 2408: string passes straight through
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Line 2409: raw interpolation
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Bug B — Confusion de route du lot REST (CVE-2026-63030)

Le point de terminaison posts de l'API REST mappe author_exclude vers author__not_in mais le déclare comme type => 'array' d'entiers, donc le cœur force/rejette une chaîne. Le bug B fait passer la chaîne au-delà de la validation en abusant d'un bug de désynchronisation dans le point de terminaison de lot REST (/wp-json/batch/v1). En injectant une amorce de chemin malformée que wp_parse_url() rejette, un WP_Error est placé dans la liste de requêtes du lot, désynchronisant $matches de $validation. Cela permet à une sous-requête suivante d'être distribuée sous le mauvais gestionnaire sans validation des paramètres.


Versions affectées

Plage de versionsStatut
6.8.0 – 6.8.5Bug SQLi présent, mais chaîne NON accessible (confusion de lot introduite en 6.9.0)
6.9.0 – 6.9.4VULNÉRABLE — chaîne complète sans authentification
7.0.0 – 7.0.1VULNÉRABLE — chaîne complète sans authentification
6.8.6Corrigé (SQLi)
6.9.5Corrigé
7.0.2Corrigé
7.1-beta2+Corrigé

Avertissement : le sink SQLi n'est atteint que lorsqu'un cache d'objets persistant (Redis/Memcached) n'est PAS utilisé.


Fonctionnalités

  • Aucune dépendance : bibliothèque standard Python pure. Aucun pip install requis.
  • Extraction à trois niveaux :
    • Basée sur UNION : forge une fausse ligne wp_posts pour extraire des chaînes entières en une seule requête HTTP (instantané).
    • Aveugle booléenne (parallèle) : si UNION est bloquée par le cache d'objets, utilise 8 threads parallèles avec recherche binaire pour extraire ~7 requêtes par caractère.
    • Temporelle (séquentielle) : solution de repli si l'oracle booléen ne retourne aucune ligne.
  • Énumération complète : liste les bases de données, les tables et les colonnes.
  • Extraction de tables : extrait des tables individuelles, toutes les tables d'une base, ou une extraction nucléaire complète vers un fichier texte horodaté.
  • Interruption propre : Ctrl+C pendant l'extraction arrête la requête en cours et retourne les résultats partiels sans faire planter la session.
  • Persistance de session : connectez-vous une fois et exécutez plusieurs requêtes via le menu interactif.
  • Assainissement d'URL : supprime automatiquement les chemins/requêtes de l'entrée hôte pour éviter le doublement de point de terminaison.
  • Sortie prête pour le craquage : les extractions d'utilisateurs incluent le format ID|user_login|user_pass avec des hachages bcrypt prêts pour hashcat -m 35500.

Installation

Aucune installation requise. Il suffit de télécharger et d'exécuter :

# Clone the repository
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navigate to directory
cd CVE-2026-60137

# Run
python main.py

Prérequis :

  • Python 3.8+
  • Aucun paquet externe nécessaire (stdlib uniquement)

Utilisation

Lancez le menu interactif :

python main.py

Exemple de session

============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONNECTION
   0. Connect / Change target
   1. Check target (version + vuln confirm)
------------------------------------------------------------
  FINGERPRINTING
   2. MySQL version (@@version)
   3. Current database name
   4. Current DB user
   5. WordPress table prefix
   6. Dump wp_users (ID, login, pass hash)
   7. Custom SQL query
   8. Extract all fingerprints (2+3+4+5)
------------------------------------------------------------
  ENUMERATION
   9. List all databases
  10. List all tables (current DB)
  11. List columns of a table
------------------------------------------------------------
  DUMPING
  12. Dump a specific table
  13. Dump all tables (current DB)
  14. Full dump to file (all tables + all rows)
------------------------------------------------------------
  15. Exit
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

Options du menu

Connexion

OptionDescription
0Se connecter à une cible (assainit automatiquement les URL)
1Vérifier la vulnérabilité et le mode d'extraction actif

Empreinte

OptionDescription
2Extraire la version MySQL (SELECT @@version)
3Extraire le nom de la base de données courante (SELECT DATABASE())
4Extraire l'utilisateur actuel de la base de données (SELECT CURRENT_USER())
5Extraire le préfixe des tables WordPress
6Extraire la table wp_users (ID, login, hachage du mot de passe)
7Exécuter une requête SQL personnalisée
8Exécuter toutes les empreintes (options 2 à 5) en séquence

Énumération

Télécharger l’outil