React Server Components Strumento di sfruttamento RCE remoto
📖 Panoramica dello strumento
React Server Components Strumento di sfruttamento RCE remoto è uno strumento di test di sicurezza specializzato per la vulnerabilità di esecuzione remota di codice nei framework React Server Components e Next.js, fornendo un'interfaccia operativa grafica, supportando molteplici modalità di attacco e funzionalità di rilevamento batch.
⚠️ Dichiarazione di non responsabilità: Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e competizioni CTF. È severamente vietato utilizzarlo per attacchi illegali. Qualsiasi conseguenza derivante dall'uso di questo strumento è a carico dell'utente.
🎯 Ambito delle vulnerabilità
Versioni React Server interessate
- React Server 19.0.0
- React Server 19.0.1 (Nota: alcune patch precedenti non coprono completamente)
- React Server 19.1.* (tutte le versioni 19.1.x)
- React Server 19.2.0
Versioni Next.js interessate
- Next.js v15.0.0 - v15.0.4
- Next.js v15.1.0 - v15.1.8
- Next.js v15.2.x - v15.5.6
- Next.js v16.0.0 - v16.0.6
- Next.js v14.3.0-canary.77 e versioni Canary successive
Altri componenti interessati
- Dify - Piattaforma di sviluppo di applicazioni AI
- NextChat - Framework per applicazioni di chat
- Altri applicativi basati su React Server Components o Next.js nelle versioni vulnerabili
Nota: Se la tua applicazione utilizza una delle versioni sopra indicate, si consiglia di aggiornare immediatamente a una versione sicura o di adottare misure protettive adeguate.
✨ Caratteristiche
🎯 Funzionalità principali
- Rilevamento vulnerabilità: Rileva rapidamente se il target presenta la vulnerabilità RCE in React Server Components / Next.js
- Esecuzione comandi: Esegue comandi di sistema e ne visualizza l'output
- Iniezione webshell in-memory: Inietta una webshell persistente nel server di destinazione
- Reverse Shell: Ottiene una shell interattiva sul sistema target
- Scansione batch: Supporta il rilevamento di più URL target per identificare rapidamente i sistemi vulnerabili
🔧 Funzionalità ausiliarie
- Supporto proxy: Supporta la configurazione di proxy HTTP (es. Burp Suite) per l'analisi del traffico.
- Intestazioni personalizzate: Consente di aggiungere intestazioni HTTP personalizzate per bypassare protezioni semplici.
- Log in tempo reale: I log delle operazioni vengono visualizzati in tempo reale per tracciare il processo di test.
- Impostazione timeout: Consente di personalizzare il timeout delle richieste per adattarsi a diverse condizioni di rete.
🚀 Guida rapida
Requisiti di sistema
- Java 8 o superiore
- Sistema operativo Windows / Linux / macOS
Avvio dello strumento
-
Fare doppio clic sul file React Server Components 远程RCE.jar
-
Oppure avviare da riga di comando:
java -jar React Server Components 远程RCE.jar
-
Al primo avvio verrà visualizzata una dichiarazione di non responsabilità; leggere attentamente e accettare per proseguire.
📋 Guida all'uso
1️⃣ Configurazione di base
Prima di utilizzare qualsiasi funzionalità, è necessario configurare le informazioni di base:
- URL target: Inserire l'indirizzo del sito web da testare (es.
http://192.168.1.100:3000)
- Percorso di attacco: Percorso dell'applicazione (predefinito:
/apps, regolabile in base al target)
- Timeout: Secondi di timeout della richiesta (predefinito: 30 secondi)
- Intestazioni personalizzate: Opzionale, una per riga, formato
Nome-Intestazione: valore
2️⃣ Rilevamento vulnerabilità
- Inserire l'URL target e la configurazione di base.
- Fare clic sul pulsante "Test vulnerabilità".
- Attendere i risultati; lo strumento determinerà automaticamente se il target è vulnerabile.
Suggerimento: Si consiglia di eseguire prima il rilevamento della vulnerabilità per confermare la presenza della vulnerabilità prima di procedere con le operazioni successive.
🎮 Dettaglio delle modalità di attacco
Modalità 1: Esecuzione comandi
Scenario: Necessità di eseguire comandi di sistema e visualizzare i risultati.
Passaggi:
- Passare alla scheda "Esecuzione comandi".
- Inserire il comando da eseguire nella casella di input (es.
whoami, ipconfig, ls -la).
- Fare clic sul pulsante "Esegui comando".
- Visualizzare il risultato nell'area di testo sottostante.
Esempi di comandi comuni:
- Windows:
whoami, ipconfig, dir, net user
- Linux:
whoami, ifconfig, ls -la, uname -a
Modalità 2: Iniezione webshell in-memory
Scenario: Necessità di lasciare una backdoor persistente sul server target.
Passaggi:
- Passare alla scheda "Iniezione webshell in-memory".
- Impostare il percorso di accesso della webshell (es.
/exec).
- Fare clic sul pulsante "Inietta webshell".
- Dopo l'iniezione riuscita, eseguire comandi tramite:
Visitare: http://target/exec?cmd=whoami
Istruzioni:
- La webshell viene registrata nella memoria dell'applicazione target, non lascia file su disco.
- Dopo il riavvio del server, la webshell non è più attiva.
- Passare il comando da eseguire tramite il parametro URL
cmd.
Modalità 3: Reverse Shell
Scenario: Necessità di ottenere una shell interattiva sul sistema target.
Passaggi:
- Avviare un listener sulla macchina locale (es. usando netcat):
- Passare alla scheda "Reverse Shell".
- Inserire l'IP di ascolto (l'indirizzo IP della tua macchina).
- Inserire la porta di ascolto (es. 4444).
- Fare clic sul pulsante "Invia reverse shell".
- Tornare alla finestra netcat e attendere la connessione della shell.
Note:
- Assicurarsi che il server target possa raggiungere il tuo IP e la porta di ascolto.
- Il firewall deve consentire le connessioni in entrata sulla porta specificata.
- In ambienti reali potrebbero esserci limitazioni di policy di rete.
Modalità 4: Scansione batch
Scenario: Necessità di scansionare più target per vulnerabilità in batch.
Passaggi:
- Passare alla scheda "Scansione batch".
- Inserire l'elenco di URL target nella casella di testo (uno per riga).
- Fare clic sul pulsante "Avvia scansione".
- Visualizzare i risultati; lo strumento segnalerà i target vulnerabili.
⚙️ Configurazione avanzata
Configurazione proxy HTTP
Utilizzato per inoltrare il traffico verso strumenti di intercettazione come Burp Suite, facilitando l'analisi delle richieste e risposte.
Passaggi di configurazione:
- Fare clic sul menu superiore "Impostazioni" → "Impostazioni proxy".
- Selezionare "Abilita".
- Inserire l'host del proxy (es.
127.0.0.1).
- Inserire la porta del proxy (es.
8080).
- Fare clic su "Salva".
Configurazione di Burp Suite:
- Assicurarsi che il listener del proxy di Burp Suite sia avviato.
- Indirizzo di ascolto predefinito:
127.0.0.1:8080.
- In Burp è possibile intercettare e modificare tutte le richieste inviate dallo strumento.
Visualizzazione stato proxy:
- Dopo la configurazione, lo stato del proxy viene visualizzato nell'angolo in alto a destra dell'interfaccia.
- Verde indica abilitato, grigio indica non configurato.
🛡️ Raccomandazioni di sicurezza
- Utilizzare solo in ambienti autorizzati: Assicurarsi di avere l'autorizzazione esplicita prima di testare qualsiasi target.
- Non utilizzare in produzione: Evitare di causare danni ai sistemi di produzione.
- Proteggere i dati dei test: Le informazioni sensibili ottenute durante i test devono essere custodite in modo sicuro.
- Rispettare le leggi: I test di penetrazione non autorizzati possono violare la legge.
- Utilizzo in CTF: Questo strumento è adatto per CTF, ambienti di laboratorio e altri contesti legali.
❓ Domande frequenti
Q1: Cosa fare se viene indicato "Nessuna vulnerabilità rilevata"?
Possibili cause:
- L'URL target non è corretto o il servizio non è attivo.
- Il target non presenta la vulnerabilità.
- Il percorso di attacco è configurato erroneamente.
- La rete non è raggiungibile o è bloccata da un firewall.
Soluzioni:
- Verificare che l'URL target sia accessibile.
- Provare a modificare i parametri del percorso di attacco.
- Controllare la connessione di rete e le impostazioni del proxy.
Q2: L'esecuzione del comando non mostra output?
Possibili cause:
- Il comando è stato eseguito con successo ma non produce output (es. comandi di scrittura file).
- Limitazioni dei permessi sul sistema target.
- Errore nella sintassi del comando.
Soluzioni:
- Provare a eseguire comandi con output chiaro (es.
id).
- Verificare la correttezza della sintassi del comando.
- Controllare l'area dei log in basso per maggiori dettagli.
Q3: La connessione reverse shell fallisce?
Possibili cause:
- Il target non può raggiungere il tuo IP di ascolto.
- Il firewall blocca la connessione.
- La porta è occupata.
Soluzioni:
- Confermare che il servizio di ascolto sia avviato (
nc -lvnp porta).
- Controllare le impostazioni del firewall e consentire la porta corrispondente.
- Assicurarsi che l'IP sia inserito correttamente (se il target è nella stessa rete locale, usare l'IP locale).
Q4: Come visualizzare richieste e risposte dettagliate?
Soluzioni:
- Configurare un proxy HTTP (es. Burp Suite).
- Visualizzare il traffico HTTP completo nello strumento proxy.
- L'area dei log in basso mostra anche informazioni chiave.
📞 Supporto tecnico
- Autore: CrabSec
- Versione: v1.0.0
📜 Dichiarazione di copyright
Questo strumento è destinato esclusivamente all'apprendimento e ai test di sicurezza autorizzati. Qualsiasi conseguenza derivante dall'uso di questo strumento è a carico dell'utente; lo sviluppatore non si assume alcuna responsabilità.
Si prega di rispettare le leggi sulla sicurezza informatica e le normative pertinenti; siate ricercatori di sicurezza etici!
Buon test! 🎉