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-2025-59712_CVE-2025-59713 — Exploit PoC di Snipe-IT per CVE-2025-59712 e CVE-2025-59713 | Kitploit
Strumenti/GitHubGitHub/synacktiv/cve-2025-59712_cve-2025-59713
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload
GitHubsynacktiv/cve-2025-59712_cve-2025-59713

CVE-2025-59712_CVE-2025-59713

Exploit PoC di Snipe-IT per CVE-2025-59712 e CVE-2025-59713

Vedi Repository
23480 anni 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

PoC per CVE-2025-59712 e CVE-2025-59713

Questo PoC fornisce uno script automatizzato per sfruttare CVE-2025-59712 (XSS nell'header User-Agent) e CVE-2025-59713 (deserializzazione non sicura).

Contesto

Queste due vulnerabilità sono state scoperte da Synacktiv durante una ricerca sulle vulnerabilità del software Snipe-IT. Snipe-IT è un sistema open-source di gestione degli asset basato su Laravel e progettato per aiutare le organizzazioni a tracciare e gestire i propri asset fisici e digitali.

Un'analisi tecnica è disponibile nell'avviso di sicurezza dedicato sul sito di Synacktiv.

Modalità

Questo script fornisce tre sottocomandi, corrispondenti alle modalità di sfruttamento: xss, rce e fullchain.

XSS

Questo sottocomando sfrutta CVE-2025-59712, che consente a un utente con privilegi limitati di iniettare JavaScript arbitrario nella pagina HTML generata quando si chiama la rotta /reports/activity. Questo è possibile solo per un utente admin, o per un utente che ha espliciti permessi di visualizzazione per i report. L'iniezione è possibile a causa di una sanitizzazione non corretta del campo User-Agent quando un utente aggiorna le proprie informazioni del profilo.

Per farlo, accederà prima come utente con privilegi limitati, e poi inietterà il codice JavaScript definito nel file fornito tramite il flag --javascript.

$ python3 exploit.py xss --help

 Usage: exploit.py xss [OPTIONS]

 Execute XSS attack only with custom JavaScript payload

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --url         -u       TEXT                    Target Snipe-IT URL [required]                                                                                                             │
│ *  --login       -l       TEXT                    Low-privileged username [required]                                                                                                         │
│ *  --password    -p       TEXT                    Low-privileged password [required]                                                                                                         │
│ *  --new-name    -n       TEXT                    New name for low-privileged user [required]                                                                                                │
│ *  --javascript  -js      TEXT                    Path to custom JavaScript file [required]                                                                                                  │
│    --proxy       -x       TEXT                    HTTP proxy (http://ip:port)                                                                                                                │
│    --verbose     -v       [quiet|normal|verbose]  Logging verbosity [default: normal]                                                                                                        │
│    --help                                         Show this message and exit.                                                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

[!IMPORTANT]
Durante la ricerca di sicurezza, i test sono stati effettuati su una versione di Snipe-IT che, di default, visualizzava il campo User-Agent in cui viene iniettato il JavaScript dannoso. Dal commit 10e5d88, la proprietà User-Agent non viene più visualizzata di default quando viene renderizzata la tabella del registro delle azioni. Pertanto, l'admin che attiverà la XSS deve aver spuntato la casella User-Agent nelle opzioni di visualizzazione per le versioni di Snipe-IT successive a questo commit.

RCE

Questo sottocomando sfrutta CVE-2025-59713, che consente l'esecuzione di codice remoto quando sono note le credenziali di un utente admin o superadmin. Per farlo, vengono eseguiti i seguenti passaggi:

  1. Viene attivato un backup dell'istanza Snipe-IT.
  2. Il backup generato viene scaricato, modificato in memoria e ricaricato su Snipe-IT. La modifica del backup include ulteriori istruzioni SQL nel file db-dumps/mysql-snipeit.sql, che creano un nuovo campo personalizzato e modificano l'ultimo log delle azioni con un oggetto JSON contenente la pop chain di Laravel al momento del ripristino.

[!TIP] Di default, Snipe-IT include il file .env nel backup. Se lo script lo rileva, il valore di APP_KEY viene visualizzato e il file .env viene salvato nella directory ./output (è possibile specificare una posizione personalizzata per quel file con --output-dir).

  1. Viene avviato un ripristino dal backup modificato, che eseguirà le istruzioni SQL aggiunte.

[!CAUTION] Il ripristino di un backup disconnette tutti gli utenti connessi all'istanza.

  1. Una volta completato il ripristino, viene chiamata la rotta /api/v1/reports/activity, che attiva la deserializzazione ed esegue la pop chain di Laravel.
$ python3 exploit.py rce --help

 Usage: exploit.py rce [OPTIONS]

 Execute RCE attack only (requires existing admin account)

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --url         -u       TEXT                    Target Snipe-IT URL [required]                                                                                                             │
│ *  --admin-user  -au      TEXT                    Admin username [required]                                                                                                                  │
│ *  --admin-pass  -ap      TEXT                    Admin password [required]                                                                                                                  │
│    --output-dir  -od      PATH                    Output dir for .env file [default: /home/ninja/Téléchargements/snipe-it-advisory/exploit/output]                                           │
│    --shell-ip    -si      TEXT                    Reverse shell IP address                                                                                                                   │
│    --shell-port  -sp      INTEGER                 Reverse shell port                                                                                                                         │
│    --command     -c       TEXT                    Custom command (overrides reverse shell)                                                                                                   │
│    --proxy       -x       TEXT                    HTTP proxy (http://ip:port)                                                                                                                │
│    --verbose     -v       [quiet|normal|verbose]  Logging verbosity [default: normal]                                                                                                        │
│    --help                                         Show this message and exit.                                                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Scarica lo strumento