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-13374 — Kalrav AI Agent <= 2.3.3 - Caricamento file arbitrario non autenticato tramite l'azione AJAX kalrav_upload_file | Kitploit
Strumenti/GitHubGitHub/d0n601/cve-2025-13374
Generazione di PayloadAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubd0n601/cve-2025-13374

CVE-2025-13374

Kalrav AI Agent <= 2.3.3 - Caricamento file arbitrario non autenticato tramite l'azione AJAX kalrav_upload_file

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

Kalrav AI Agent <= 2.3.3 - Caricamento Arbitrario di File non Autenticato tramite Azione AJAX kalrav_upload_file

Il plugin WordPress Kalrav AI Agent (versione 2.3.3 e precedenti) contiene una vulnerabilità di caricamento arbitrario di file che consente a utenti non autenticati di caricare file PHP dannosi sul server, portando potenzialmente all'esecuzione remota di codice.

Riepilogo Exploit

Viene fornito un POC CVE-2025-13374.py per dimostrare un attaccante remoto che carica shell.php ed esegue codice remoto:

root@kitploit:~
python3 ./CVE-2025-13374.py http://techcorp.cc
[+] Target: http://techcorp.cc
[+] File uploaded successfully!
[+] Shell URL: http://techcorp.cc/wp-content/plugins/kalrav-ai-agent/uploads/1763247725-shell.php
[+] Command output:
www-data

Descrizione Tecnica

La vulnerabilità risiede nella funzione kalrav_upload_file() nell'endpoint /wp-admin/admin-ajax.php. La funzionalità di upload manca di una corretta validazione dei file, verifica nonce e controlli delle capacità. Ciò consente a utenti non autenticati di caricare file arbitrari, inclusi file PHP che possono essere eseguiti sul server.

Analisi del Percorso di Attacco

Fonte: Input utente da $_FILES['file'] (riga 978) Destinazione: move_uploaded_file($_FILES['file']['tmp_name'], $target_path) (riga 982)

La vulnerabilità si verifica perché:

  1. Registrazione della Route: L'endpoint di upload è registrato tramite l'hook wp_ajax_nopriv_kalrav_upload_file (riga 967), consentendo l'accesso non autenticato.
  2. Nessuna Autenticazione: Il prefisso wp_ajax_nopriv_ rende la funzione accessibile agli utenti non autenticati.
  3. Nessuna Verifica Nonce: La funzione manca di protezione CSRF tramite verifica nonce.
  4. Nessun Controllo delle Capacità: Nessuna validazione dei permessi viene eseguita prima di consentire il caricamento dei file.
  5. Elaborazione dell'Input: I dati del file controllati dall'utente da $_FILES['file'] vengono elaborati direttamente senza validazione.
  6. Gestione dei File: Viene applicata solo una sanificazione di base del nome file utilizzando basename(): time() . '-' . basename($_FILES['file']['name']) (riga 979), che previene solo il directory traversal ma non valida le estensioni dei file.
  7. Archiviazione dei File: I file vengono salvati in wp-content/plugins/kalrav-ai-agent/uploads/.

Posizione del Codice Vulnerabile

File: kalrav-ai-agent.php Righe: 969-996

root@kitploit:~
add_action('wp_ajax_kalrav_upload_file', 'kalrav_upload_file');
add_action('wp_ajax_nopriv_kalrav_upload_file', 'kalrav_upload_file');  

function kalrav_upload_file()
{
    // Path to your plugin uploads folder
    $upload_dir = plugin_dir_path(__FILE__) . 'uploads/';

    if (!file_exists($upload_dir)) {
        mkdir($upload_dir, 0755, true);
    }

    if (!empty($_FILES['file']['name'])) { 
        $file_name = time() . '-' . basename($_FILES['file']['name']);  
        $target_path = $upload_dir . $file_name;

        if (move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { 
            wp_send_json_success([
                'message' => 'File uploaded successfully!',
                'file_path' => $target_path,
                'url' => plugins_url('uploads/' . $file_name, __FILE__)  
            ]);
        } else {
            wp_send_json_error(['message' => 'Failed to move uploaded file.']);
        }
    } else {
        wp_send_json_error(['message' => 'No file uploaded.']);
    }

    wp_die();
}
Scarica lo strumento