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-11391 — Il plugin WordPress PPOM for WooCommerce <= 33.0.15 è vulnerabile a SQL Injection. | Kitploit
Strumenti/GitHubGitHub/moritakaaz/cve-2025-11391
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e FormazioneSicurezza dei Database
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

Il plugin WordPress PPOM for WooCommerce <= 33.0.15 è vulnerabile a SQL Injection.

Vedi Repository
10 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

SQL Injection cieca non autenticata in PPOM for WooCommerce <= 33.0.15

Questa repository contiene una prova di concetto (PoC) per una vulnerabilità di SQL injection cieca basata sul tempo non autenticata nel plugin WordPress "PPOM for WooCommerce", che interessa le versioni fino alla 33.0.15 inclusa.

Dettagli della vulnerabilità

  • Plugin: PPOM for WooCommerce
  • Versioni interessate: <= 33.0.15
  • Versione corretta: 33.0.16
  • Tipo di vulnerabilità: SQL Injection cieca basata sul tempo non autenticata
  • CVE ID: CVE-2025-11391 (Assegnato per scopi di tracciamento)

Descrizione

La vulnerabilità esiste perché il plugin non riesce a sanificare correttamente l'input fornito dall'utente prima di utilizzarlo in una query SQL. In particolare, la funzione get_product_meta() in classes/plugin.class.php concatena direttamente il parametro $meta_id nella query SQL senza utilizzare istruzioni preparate (prepared statements).

Codice vulnerabile (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

Un attaccante non autenticato può sfruttare questa vulnerabilità creando un payload dannoso e iniettandolo nel parametro ppom[fields][id] quando aggiunge un prodotto al carrello. Ciò consente all'attaccante di eseguire comandi SQL arbitrari, come funzioni di ritardo temporale (SLEEP()), permettendogli di confermare la vulnerabilità e potenzialmente esfiltrare informazioni sensibili dal database carattere per carattere.

La vulnerabilità viene attivata quando l'opzione "Enable Legacy Price Calculations" è attiva nelle impostazioni del plugin, poiché ciò costringe l'applicazione a utilizzare il percorso di codice vulnerabile durante le operazioni sul carrello.

Struttura della repository

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).

Configurazione e passaggi per la riproduzione

1. Requisiti

  • Un ambiente server web locale (ad esempio XAMPP, WAMP, MAMP).
  • Un'installazione pulita di WordPress.
  • Il plugin WooCommerce installato e attivato.
  • Python 3.x con la libreria requests installata (pip install requests).

2. Allestimento del laboratorio

  1. Avvia il tuo server web locale (Apache, MySQL).
  2. Installa WordPress in una directory (ad esempio /htdocs/wp4hacking/).
  3. Installa e attiva il plugin WooCommerce dalla dashboard di WordPress.
  4. Installa la versione vulnerabile di woocommerce-product-addon (v33.0.15) fornita in questa repository caricando il file .zip dalla directory woocommerce-product-addon/.
  5. Attiva il plugin "PPOM for WooCommerce".

3. Configurazione vulnerabile

  1. Nella dashboard di WordPress, vai su PPOM Fields > Impostazioni.
  2. Trova l'opzione "Enable Legacy Price Calculations" e spunta la casella per abilitarla.
  3. Salva le modifiche.
  4. Vai su PPOM Fields e crea un nuovo gruppo di campi (ad esempio, chiamalo "PoC Group").
  5. All'interno di questo gruppo, aggiungi un campo Text Input. Dagli un titolo (ad esempio, "SQL Injection") e un nome dati (ad esempio, sql_injection).
  6. Vai su Prodotti > Aggiungi nuovo per creare un nuovo prodotto WooCommerce.
  7. Assegna al prodotto un nome (ad esempio, "Product Testing") e un prezzo.
  8. Nella pagina di modifica del prodotto, trova la scheda "PPOM Fields" e seleziona il "PoC Group" che hai creato.
  9. Pubblica il prodotto. Prendi nota dell'ID del prodotto (ad esempio, 72).

Sfruttamento

Lo script exploit.py fornito conferma la vulnerabilità iniettando un comando SLEEP() e misurando il tempo di risposta del server.

Come eseguire l'exploit

  1. Apri il file exploit.py e configura le seguenti variabili:

    • PRODUCT_URL: l'URL completo della pagina del prodotto vulnerabile che hai creato.
    • add_to_cart_data['add-to-cart']: l'ID del tuo prodotto vulnerabile.
  2. Esegui lo script dal tuo terminale:

    root@kitploit:~
    python exploit.py
    

Output previsto

Se il target è vulnerabile, il server impiegherà più tempo della durata di SLEEP() per rispondere, causando il timeout dello script. Lo script interpreta correttamente questo timeout come uno sfruttamento riuscito.

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

Mitigazione

  • Aggiorna immediatamente: aggiorna il plugin "PPOM for WooCommerce" alla versione 33.0.16 o successiva.
  • Usa istruzioni preparate: la versione corretta utilizza $wpdb->prepare() per sanificare correttamente l'input, prevenendo l'SQL injection.

Codice corretto (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

Esclusione di responsabilità

Questo PoC è destinato esclusivamente a scopi educativi e di ricerca. Non utilizzarlo su sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test. L'autore non è responsabile di qualsiasi uso improprio o danno causato da questo script.

Scarica lo strumento