
Meccanismo di rilevamento ad alta fedeltà per RSC/Next.js RCE (CVE-2025-55182 & CVE-2025-66478)
Uno strumento a riga di comando per rilevare CVE-2025-55182 e CVE-2025-66478 in applicazioni Next.js che utilizzano React Server Components.
Per i dettagli tecnici sulla vulnerabilità e la metodologia di rilevamento, consulta il nostro post sul blog: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Per impostazione predefinita, lo scanner invia una richiesta POST multipart appositamente costruita contenente un payload proof-of-concept di RCE che esegue un'operazione matematica deterministica (41*271 = 11111). Gli host vulnerabili restituiscono il risultato nell'intestazione di risposta X-Action-Redirect come /login?a=11111.
Lo scanner testa il percorso radice (/) per impostazione predefinita. Usa --path o --path-file per testare percorsi personalizzati. Se non vulnerabile, segue i reindirizzamenti dello stesso host (ad es., / a /en/) e testa la destinazione del reindirizzamento. I reindirizzamenti cross-origin non vengono seguiti.
Il flag --safe-check utilizza un metodo di rilevamento alternativo che si basa su indicatori di canale laterale (codice di stato 500 con digest di errore specifico) senza eseguire codice sul target. Usa questa modalità quando l'esecuzione di RCE non è desiderata.
Il flag --waf-bypass antepone dati casuali al corpo della richiesta multipart. Questo può aiutare a eludere l'ispezione del contenuto WAF che analizza solo la prima parte dei corpi delle richieste. La dimensione predefinita è 128KB, configurabile tramite --waf-bypass-size. Quando il bypass WAF è abilitato, il timeout viene automaticamente aumentato a 20 secondi (a meno che non sia impostato esplicitamente).
Il flag --vercel-waf-bypass utilizza una variante di payload alternativa specificamente progettata per bypassare le protezioni WAF di Vercel. Questo utilizza una struttura multipart diversa con un campo aggiuntivo nel modulo.
Il flag --windows commuta il payload dalla shell Unix (echo $((41*271))) a PowerShell (powershell -c "41*271") per i target in esecuzione su Windows.
pip install -r requirements.txt
Scansiona un singolo host:
python3 scanner.py -u https://example.com
Scansiona una lista di host:
python3 scanner.py -l hosts.txt
Scansiona con più thread e salva i risultati:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Scansiona con intestazioni personalizzate:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Usa il rilevamento sicuro tramite canale laterale:
python3 scanner.py -u https://example.com --safe-check
Scansiona target Windows:
python3 scanner.py -u https://example.com --windows
Scansiona con bypass WAF:
python3 scanner.py -u https://example.com --waf-bypass
Scansiona percorsi personalizzati:
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url URL singolo da controllare
-l, --list File contenente host (uno per riga)
-t, --threads Numero di thread concorrenti (default: 10)
--timeout Timeout della richiesta in secondi (default: 10)
-o, --output File di output per i risultati (JSON)
--all-results Salva tutti i risultati, non solo gli host vulnerabili
-k, --insecure Disabilita la verifica del certificato SSL
-H, --header Intestazione personalizzata (può essere usata più volte)
-v, --verbose Mostra i dettagli della risposta per gli host vulnerabili
-q, --quiet Mostra solo gli host vulnerabili
--no-color Disabilita l'output colorato
--safe-check Usa il rilevamento sicuro tramite canale laterale invece del PoC RCE
--windows Usa il payload PowerShell di Windows invece della shell Unix
--waf-bypass Aggiungi dati casuali per bypassare l'ispezione del contenuto WAF
--waf-bypass-size Dimensione dei dati casuali in KB (default: 128)
--path Percorso personalizzato da testare (può essere usato più volte)
--path-file File contenente percorsi da testare (uno per riga)
Il PoC RCE è stato originariamente divulgato da @maple3142 -- siamo immensamente grati per il loro lavoro nel pubblicare un PoC funzionante.
Questo strumento è stato originariamente sviluppato come un modo sicuro per rilevare l'RCE. Questa funzionalità è ancora disponibile tramite --safe-check, la modalità di "rilevamento sicuro".
I risultati vengono stampati sul terminale. Quando si usa -o, gli host vulnerabili vengono salvati in un file JSON contenente l'intera richiesta e risposta HTTP per la verifica.