
# Docker lab che dimostra CVE-2026-17532, una XSS riflessa non autenticata in Seraphinite Accelerator che si combina in RCE tramite sessione admin, con script di exploit e web shell.
Un laboratorio Docker per CVE-2026-17532, una XSS riflessa non autenticata nel plugin WordPress Seraphinite Accelerator che si trasforma in esecuzione di codice remoto nel momento in cui un amministratore con sessione attiva apre un singolo link appositamente costruito.
Analisi completa: BLOG
python3 oppure php sull'host (servono solo per costruire l'URL dell'exploit - exploit.sh usa quello disponibile)docker compose down -v # pulisce eventuali dati precedenti
docker compose up -d
docker compose logs -f wpcli
Attendi , poi premi Ctrl-C. WordPress ora è disponibile su con il plugin vulnerabile attivo e la cache delle pagine abilitata.
LAB READYhttp://127.0.0.1:8080Il container wpcli è un installer monouso; termina dopo la configurazione. È normale.
Accedi come admin su http://127.0.0.1:8080/wp-admin
adminadmin-lab-pwCostruisci l'URL appositamente creato e aprilo nello stesso browser:
./exploit.sh # oppure: ./exploit.sh http://127.0.0.1:8080
La pagina resta in sospeso per ~5 secondi - è un vero sleep( 5 ) nel ramo selfTest del plugin, non un laboratorio guasto. Poi la XSS viene eseguita, scrive la web shell usando la tua sessione admin e registra l'URL della shell nella console del browser.
http://127.0.0.1:8080/wp-content/plugins/hello.php?c=id
Oppure aprilo senza ?c= per una casella di input interattiva.
xss.js viene eseguito nella sessione dell'admin e nella stessa origine, quindi può:
GET di wp-admin/plugin-editor.php ed estrarre il nonce editor monouso dall'HTML.POST a admin-ajax.php con action=edit-theme-plugin-file, scrivendo una web shell PHP in hello.php.Perché hello.php? Perché è inattivo. Quando modifichi un plugin attivo e la modifica causerebbe un errore fatale al sito, WordPress rileva l'errore e ripristina il file. I plugin inattivi saltano quel controllo, quindi la shell viene scritta e rimane scritta. Qualsiasi file di plugin inattivo scrivibile funziona; hello.php è semplicemente incluso di default in WordPress.
L'intero script è incorporato nell'URL appositamente creato, quindi non serve alcun server dell'attaccante.
docker compose down -v