
Environnement de PoC basé sur Docker pour la vulnérabilité de désérialisation de l'APP_KEY de Laravel (CVE-2018-15133). Inclut un script d'exploitation pour vérifier l'exécution de code à distance via des charges utiles malveillantes sur Laravel <= 5.7.27.
WhiteHat School 3e promotion, classe 28, Lee Yebin - Configuration Docker vulnérable https://github.com/yeahhbean/Laravel-CVE-2018-15133
Ce projet est un environnement basé sur Docker configuré pour vérifier (PoC) la vulnérabilité CVE-2018-15133 (vulnérabilité de désérialisation de la clé APP_KEY de Laravel).
Avec uniquement le Dockerfile et docker-compose.yaml, l'environnement vulnérable a été mis en place, et il a été confirmé que le PoC est exécuté avec succès via l'exploit.
Dockerfile et docker-compose.yaml installent et exécutent automatiquement l'environnement vulnérable.
| Nom du fichier | Description |
|---|---|
| Dockerfile | Pour l'installation de PHP + Composer + Laravel 5.7 |
| docker-compose.yaml | Configuration de tous les services (Nginx, PHP, MySQL) |
| nginx/default.conf | Fichier de configuration du proxy inverse Nginx |
| exploit.py | Code PoC basé sur la clé APP_KEY |
Structure du répertoire

Déplacement vers le répertoire cd C:\Users\Admin\Desktop\WHS\CVE

Construction de l'image Docker docker-compose build

Exécution du conteneur Docker docker-compose up -d

Accès au conteneur docker exec -it laravel_app bash

Sortie du conteneur et exécution du PoC exit python exploit.py

Accès via le navigateur : ouvrir le navigateur et aller à http://localhost:8080

# 1. Téléchargement de la source et accès au répertoire
cd [répertoire du projet]
# 2. Construction de l'image Docker
docker-compose build
# 3. Exécution du conteneur Docker
docker-compose up -d
---
Une fois exécuté avec succès, vous pouvez voir la page par défaut de Laravel à l'adresse http://localhost:8080.
# 1. Extraction de la clé APP_KEY de Laravel depuis le conteneur
docker exec -it laravel_app bash
cat /var/www/html/laravel/.env | grep APP_KEY
# 2. Utilisation de la clé APP_KEY extraite dans exploit.py et exécution
python exploit.py
# 3. Si la page HTML de Laravel est renvoyée correctement, cela signifie que la charge utile a été transmise avec succès via la clé APP_KEY.
Les versions de Laravel ultérieures à 5.7.28 ont corrigé cette vulnérabilité et ne fonctionnent plus.
Le code PoC (exploit.py) a été écrit en se référant aux méthodes d'attaque publiquement disponibles.