
Scanner per rilevare la presenza di CVE-2025-55182 e CVE-2025-66478 su servizi web mirati.
Uno scanner sicuro e non invasivo per rilevare le vulnerabilità di Remote Code Execution in React Server Components (RSC) e Next.js (CVE-2025-55182 e CVE-2025-66478).
Questo scanner aiuta le organizzazioni a identificare se i propri servizi web sono vulnerabili alla vulnerabilità React2Shell, che colpisce le applicazioni che utilizzano React Server Components e Next.js. La vulnerabilità consente agli attaccanti di ottenere l'esecuzione remota di codice tramite dati multipart appositamente craftati.
Importante: questo scanner utilizza esclusivamente metodi di rilevamento side-channel sicuri e non esegue codice sui sistemi target.
Metodo di rilevamento sicuro
Opzioni di scansione flessibili
/_next, /api)Opzioni di output
pip install -r requirements.txt
Oppure installare manualmente:
pip install requests tqdm urllib3
Scansione di un singolo URL:
python scanner.py -u https://example.com
Scansione di più host da un file:
python scanner.py -l hosts.txt
Scansione con percorsi personalizzati:
python scanner.py -u https://example.com --path /_next --path /api
Scansione con percorsi da file:
python scanner.py -u https://example.com --path-file paths.txt
Header personalizzati:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
Scansione multi-thread:
python scanner.py -l hosts.txt -t 20
Esportazione dei risultati in JSON:
python scanner.py -l hosts.txt -o results.json
Esportazione di tutti i risultati (inclusi i non vulnerabili):
python scanner.py -l hosts.txt -o results.json --all-results
Modalità verbose (mostra i dettagli per tutti gli host):
python scanner.py -l hosts.txt -v
Modalità silenziosa (mostra solo gli host vulnerabili):
python scanner.py -l hosts.txt -q
Disabilita i colori:
python scanner.py -l hosts.txt --no-color
Un host per riga. Le righe che iniziano con # vengono ignorate.
https://example.com
http://test.example.org
another-site.com
# This is a comment
Un percorso per riga. Ai percorsi verrà automaticamente anteposto / se non presente.
/_next
/api
/actions
# Comment lines are ignored
Lo scanner utilizza un metodo di rilevamento non invasivo che:
Messaggi di errore JavaScript
SyntaxError - Indica un parsing JSON improprio dei dati del formUnexpected token - Suggerisce una deserializzazione RSC vulnerabileReferenceError / TypeError - Rivela un accesso non sicuro alle proprietà degli oggettiRisposte di errore specifiche di RSC
text/x-componentVary: RSC, Next-Router-State-Tree){"digest":"..."})$@, error objects)Lo scanner rileva sia i messaggi di errore verbosi (versioni precedenti) sia le risposte di errore RSC strutturate (versioni più recenti), garantendo una copertura completa delle diverse implementazioni Next.js.
Importante: questo metodo NON esegue alcun codice sul sistema target. Rileva solo se il sistema è vulnerabile osservando le risposte di errore.
python scanner.py -u https://myapp.com
# Create hosts file with all your domains
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# Create paths.txt with common Next.js endpoints
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
Lo scanner contrassegnerà un host come VULNERABILE se rileva:
Quando lo scanner rileva una vulnerabilità, significa che:
0: Nessuna vulnerabilità trovata1: Una o più vulnerabilità rilevate-t) per evitare di sovraccaricare i targetSe la tua applicazione risulta vulnerabile:
Azioni immediate:
Sicurezza a lungo termine:
Riferimenti:
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale. Gli autori non sono responsabili per un uso improprio o per danni causati da questo programma.
| Opzione | Descrizione |
|---|
-u, --url URL | URL singolo da scansionare |
-l, --list FILE | File contenente l'elenco degli host da scansionare |
-t, --threads N | Numero di thread concorrenti (predefinito: 10) |
--timeout N | Timeout delle richieste in secondi (predefinito: 10) |
-o, --output FILE | File di output per i risultati (formato JSON) |
--all-results | Salva tutti i risultati, non solo gli host vulnerabili |
-k, --insecure | Disabilita la verifica del certificato SSL |
-H, --header HEADER | Header personalizzato (può essere usato più volte) |
-v, --verbose | Output verbose (mostra i dettagli per tutti gli host) |
-q, --quiet | Modalità silenziosa (mostra solo gli host vulnerabili) |
--no-color | Disabilita l'output colorato |
--path PATH | Percorso personalizzato da testare (può essere usato più volte) |
--path-file FILE | File contenente l'elenco dei percorsi da testare |