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
POC-WP-XSS2Shell-CVE-2026-64638 — PoC funzionale di CVE-2026-64638 (XSS2Shell): catena pre-auth XSS a RCE in WordPress Core. Laboratorio Docker + server attaccante Python + analisi tecnica e mitigazione. | Kitploit
Strumenti/GitHubGitHub/686f6c61/poc-wp-xss2shell-cve-2026-64638
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebApprendimento e FormazioneSviluppo PayloadLab e Pratica
GitHub686f6c61/poc-wp-xss2shell-cve-2026-64638

POC-WP-XSS2Shell-CVE-2026-64638

PoC funzionale di CVE-2026-64638 (XSS2Shell): catena pre-auth XSS a RCE in WordPress Core. Laboratorio Docker + server attaccante Python + analisi tecnica e mitigazione.

Vedi Repository
121 mese 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

XSS2Shell — PoC di CVE-2026-64638

Proof of Concept educativa della catena XSS2Shell (CVE-2026-64638), vulnerabilità pre-autenticazione XSS → RCE nel WordPress Core scoperta in modo autonomo da pwn.ai e divulgata il 7 agosto 2026.


Indice dei contenuti

  1. Sommario esecutivo
  2. Avviso legale
  3. Architettura della catena
  4. Requisiti
  5. Struttura del repository
  6. Guida rapida all'uso
  7. Verifica dello sfruttamento
  8. Documentazione aggiuntiva

Sommario esecutivo

CVE-2026-64638 è una vulnerabilità di tipo cross-site scripting (XSS) riflesso, pre-autenticazione, nella schermata di accesso di WordPress (wp-login.php). Interessa tutte le versioni supportate di WordPress precedenti alla 7.0.3, pubblicata il 6 agosto 2026 come security release di emergenza. Le è stato assegnato un CVSS v4.0 di 8.9.

La catena battezzata XSS2Shell dimostra come, partendo unicamente da un tentativo di login fallito con un username manipolato, un attaccante può:

  1. Iniettare elementi DOM vivi nella pagina di login sfruttando una discrepanza tra due parser di PHP (strip_tags) e di WordPress (wp_kses_post).
  2. Dirottare il flusso di esecuzione del JavaScript nativo di WordPress (user-profile.js) per effettuare una richiesta REST JSONP alla stessa origine.
  3. Convertire la risposta JSONP in esecuzione di JavaScript nell'origine di WordPress tramite jQuery.globalEval().
  4. Concatenare il tutto con la tecnica Same Origin Method Execution (SOME) di Paulos Yibelo (2022) per fare click automaticamente sul pulsante di approvazione delle Application Passwords all'interno della sessione autenticata di un amministratore.
  5. Catturare la credenziale Application Password risultante, pubblicare una pagina con JavaScript malevolo e, infine, caricare un plugin in formato ZIP che esegue PHP sul server.

Il risultato è l'esecuzione remota di codice (RCE) sul server WordPress, sotto l'utente del processo web (tipicamente www-data), partendo da un singolo click dell'amministratore su un link controllato dall'attaccante.


Avviso legale

Questo repository contiene materiale strettamente educativo e difensivo.

  • Scopo: dimostrare la catena di sfruttamento a fini di formazione, audit propri e validazione delle patch.
  • Uso autorizzato: eseguilo esclusivamente contro installazioni di WordPress che ti appartengono o per le quali disponi di un'autorizzazione scritta esplicita.
  • Vietato: qualsiasi uso contro sistemi di terze parti senza consenso. L'autore del repository non si assume la responsabilità dell'uso improprio del materiale qui incluso.
  • Responsabilità: l'operatore è l'unico responsabile del rispetto della legislazione applicabile (LOPD/RGPD in Spagna, CFAA negli USA, ecc.).

La PoC viene fornita con un ambiente Docker autocontenuto la cui unica finalità è servire come bersaglio locale e riproducibile.


Architettura della catena

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────┐
│  1. XSS pre-auth en wp-login.php                                    │
│     log=< area id=ajaxurl href=/?rest_route=/&_jsonp=...>           │
│     (discrepancia strip_tags ↔ wp_kses_post)                        │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  2. user-profile.js dispara .trigger('click')                       │
│     DOM clobbering de ajaxurl → petición POST al origen             │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  3. REST JSONP responde application/javascript                      │
│     jQuery.globalEval() ejecuta el callback en el origen WP         │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  callback = window.opener
                                           │            .approve.click
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  4. SOME: click() cruza la frontera opener→admin                    │
│     authorize-application.php#approve se pulsa en sesión admin      │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  5. WP crea Application Password → redirige a success_url           │
│     El atacante captura user_login + password en callback.php       │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  HTTP Basic REST
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  6. POST /wp-json/wp/v2/pages  → publica página con <script>        │
│     El admin visita la página → JS en origen WP con sesión admin    │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  7. fetch update.php?action=upload-plugin  → sube payload.zip       │
│     PHP del plugin es accesible directamente sin activarlo          │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  8. RCE confirmada: GET /wp-content/plugins/payload/shell.php       │
└─────────────────────────────────────────────────────────────────────┘

Requisiti

La PoC è costruita per essere eseguita su macOS o Linux con:

  • Docker 24+ e Docker Compose v2 (per il bersaglio locale).
  • Python 3.9+ (per l'orchestratore opzionale).
  • PHP 8.1+ con estensione zip (per costruire il payload manualmente, opzionale; il ZIP già costruito è incluso in payload/).
  • Un browser moderno basato su Chromium o Firefox.

Non è necessario installare WordPress manualmente: il docker-compose.yml avvia un WordPress 7.0.2 vulnerabile (l'ultima versione precedente alla patch) insieme a MariaDB.


Struttura del repository

root@kitploit:~
POC XSS2Shell (CVE-2026-64638)/
├── README.md                       ← Este archivo
├── docker-compose.yml              ← Blanco: WordPress 7.0.2 + MariaDB
├── .env.example                    ← Variables de configuración
├── exploit.py                      ← Orquestador en Python (opcional)
├── attacker/                       ← Infraestructura del atacante
│   ├── index.html                  ← Página cebo con la cadena SOME
│   ├── callback.php                ← Receptor de la Application Password
│   └── server.py                   ← Servidor estático + PHP embebido
├── payload/                        ← Plugin ZIP malicioso
│   ├── build_payload.py            ← Generador del ZIP
│   ├── shell.php                   ← Webshell mínimo
│   └── payload.zip                 ← ZIP preconstruido (listo para usar)
└── docs/
    ├── ANALISIS.md                 ← Análisis técnico detallado
    └── MITIGACION.md               ← Guía de mitigación y hardening

Guida rapida all'uso

1. Avviare il bersaglio (WordPress 7.0.2 vulnerabile)

root@kitploit:~
cp .env.example .env
docker compose up -d

WordPress sarà accessibile su http://localhost:8080. Segui la procedura guidata di installazione e crea un utente amministratore (ad esempio admin / admin-password).

Il Dockerfile ancora l'immagine a wordpress:7.0.2-php8.2-apache, che è l'ultima versione precedente alla patch 7.0.3.

2. Avviare l'infrastruttura dell'attaccante

root@kitploit:~
# En otro terminal, dentro de attacker/
python3 server.py

Il server dell'attaccante è in ascolto su http://localhost:9000 ed espone:

  • / → index.html (la pagina esca).
  • /callback.php → ricevitore della Application Password.

3. Simulare il click dell'amministratore

  1. Accedi come amministratore su http://localhost:8080/wp-admin.
  2. Nella stessa sessione del browser, apri una nuova scheda e visita http://localhost:9000/.
  3. Vedrai un unico pulsante «Approve Application». Premendolo viene eseguita l'intera catena in modo automatico.

4. Osservare la cattura delle credenziali

Nel terminale in cui gira server.py apparirà una riga del tipo:

root@kitploit:~
[+] Application Password recibida para el usuario 'admin':
    XXXX XXXX XXXX XXXX XXXX XXXX

La credenziale viene salvata anche in attacker/captured_credentials.txt.

5. Osservare la RCE

Dopo alcuni secondi, l'orchestratore di index.html avrà:

  • Pubblicato una pagina che esegue JavaScript nell'origine di WordPress.
  • Caricato il plugin payload.zip in wp-content/plugins/payload/.

Verifica l'esecuzione di codice con:

root@kitploit:~
curl -sI http://localhost:8080/wp-content/plugins/payload/shell.php

Un'intestazione Hacked: true e un corpo JSON confermano la RCE.


Verifica dello sfruttamento

Una volta completata la catena, i seguenti endpoint servono come evidenza:

RisorsaEvidenza attesa
GET /wp-content/plugins/payload/shell.phpIntestazione Hacked: true + JSON {"rce":true,"user":"www-data"}
attacker/captured_credentials.txtApplication Password catturata
wp-admin → Applicazioni → Password applicazioniUna nuova voce chiamata «SomeApp»

Documentazione aggiuntiva

  • docs/ANALISIS.md — Analisi tecnica dettagliata di ogni fase della catena, con riferimenti al codice sorgente di WordPress.
  • docs/MITIGACION.md — Mitigazioni raccomandate, hardening e verifica della patch 7.0.3.

Crediti

  • Ricerca originale e divulgazione: pwn.ai — https://pwn.ai/blog/xss2shell
  • Tecnica SOME sottostante: Paulos Yibelo (2022), pubblicata sul blog di pwn.ai e candidata alle Top Web Hacking Techniques del 2022.
  • PoC e confezionamento di questo repository: lavoro proprio a fini educativi.

Licenza

Distribuito sotto licenza MIT. Consulta il file LICENSE per maggiori dettagli.

Scarica lo strumento