Application Next.js volontairement vulnérable pour la recherche en sécurité CVE-2025-55182 et les défis CTF.
⚠️ UNIQUEMENT À DES FINS ÉDUCATIVES : Cette application est volontairement vulnérable et conçue pour la recherche en sécurité autorisée et les défis CTF. N'utilisez pas ces techniques sur des systèmes non autorisés.
Une application Next.js 15.1.6 volontairement vulnérable qui illustre CVE-2025-55182 (React2Shell) - une vulnérabilité critique d'exécution de code à distance (RCE) dans les React Server Components. Conçue pour les chercheurs en sécurité, les testeurs d'intrusion et les étudiants afin de s'entraîner aux techniques d'exploitation dans un environnement sûr et isolé.
CVE-2025-55182, également connue sous le nom de React2Shell, est une vulnérabilité critique d'exécution de code à distance (RCE) affectant les React Server Components dans Next.js.
La vulnérabilité provient d'une gestion inappropriée des données sérialisées dans les React Server Actions. Les attaquants peuvent élaborer des charges utiles malveillantes qui contournent la validation et exécutent du code arbitraire sur le serveur via :
Avant de commencer, assurez-vous d'avoir installé les éléments suivants :
docker --version
docker-compose --version
git --version
# 1. Clone the repository
git clone https://github.com/Machine-farmer/PunchingBag-for-React2Shell.git
cd PunchingBag-for-React2Shell
# 2. Build and run with Docker
docker-compose up --build
# 3. Access the application
# Open your browser to: http://localhost:3000
# 1. Clone the repository
git clone https://github.com/Machine-farmer/punchingbag-cve-2025-55182.git
cd punchingbag-cve-2025-55182
# 2. Install dependencies
npm install
# 3. Run development server
npm run dev
# 4. Access at http://localhost:3000
⚠️ Avertissement : L'installation manuelle sans Docker n'est PAS recommandée pour la recherche en sécurité. Utilisez toujours Docker pour l'isolation.
# Start the vulnerable application
docker-compose up
# Start in detached mode (background)
docker-compose up -d
# View logs
docker-compose logs -f
# Stop containers
docker-compose down
# Stop and remove volumes
docker-compose down -v
# Complete cleanup (removes images)
docker-compose down -v --rmi all
Une fois lancée, accédez à :
PunchingBag contient 5 drapeaux cachés qui testent différentes techniques d'exploitation :
| Drapeau | Défi | Difficulté | Points |
|---|---|---|---|
| 🚩 Drapeau 1 | Reconnaissance de base | Facile | 100 |
| 🚩 Drapeau 2 | Exploitation d'une Server Action | Moyen | 200 |
| 🚩 Drapeau 3 | Contournement de l'accès admin | Moyen | 300 |
| 🚩 Drapeau 4 | Exécution de code à distance | Difficile | 400 |
| 🚩 Drapeau 5 | Secrets d'environnement | Moyen | 250 |
Tous les drapeaux suivent le format : CTF{description_here}
# Explore the application
curl http://localhost:3000
# Check available endpoints
curl http://localhost:3000/dashboard
curl http://localhost:3000/admin
Interceptez les soumissions de formulaire et modifiez la charge utile :
// Example malicious payload
{
"name": "attacker",
"email": "[email protected]",
"message": "__proto__: { isAdmin: true }"
}
# Inject malicious headers
curl -X POST http://localhost:3000/api/data \
-H "Content-Type: application/json" \
-H "x-user-data: {\"role\":\"admin\"}" \
-d '{"exploit": true}'
Consultez .env.local pour trouver des identifiants ou exploitez l'authentification :
# Default admin token (intentionally weak)
Username: admin
Token: super_secret_admin_key_12345
Sur le composant vulnérable, utilisez la fonctionnalité d'exécution de commandes :
# Simulate RCE
Command: cat /flag.txt