
Ambiente PoC baseado em Docker para a vulnerabilidade de desserialização do APP_KEY do Laravel CVE-2018-15133. Inclui script de exploit para verificar a execução remota de código por meio de payloads maliciosos no Laravel <= 5.7.27.
WhiteHatSchool 3ª geração, 28ª classe, Lee Yebin - Virtualização - Configuração Docker vulnerável https://github.com/yeahhbean/Laravel-CVE-2018-15133
Este projeto é um ambiente baseado em Docker configurado para verificar (PoC) a vulnerabilidade CVE-2018-15133 (vulnerabilidade de desserialização da APP_KEY do Laravel).
Com apenas o Dockerfile e o docker-compose.yaml é possível construir o ambiente vulnerável, e foi confirmado que o PoC é executado corretamente por meio do exploit.
Por meio do Dockerfile e do docker-compose.yaml, o ambiente vulnerável é instalado e executado automaticamente.
| Nome do Arquivo | Descrição |
|---|---|
| Dockerfile | Para instalação do PHP + Composer + Laravel 5.7 |
| docker-compose.yaml | Configura todos os serviços (Nginx, PHP, MySQL) |
| nginx/default.conf | Arquivo de configuração do proxy reverso do Nginx |
| exploit.py | Código PoC baseado na APP_KEY |
Estrutura de diretórios

Navegação de diretório: cd C:\Users\Admin\Desktop\WHS\CVE

Build da imagem Docker: docker-compose build

Execução do contêiner Docker: docker-compose up -d

Acesso ao contêiner: docker exec -it laravel_app bash

Sair do contêiner e executar o PoC: exit python exploit.py

Acesso pelo navegador: abra o navegador e acesse http://localhost:8080

# 1. Download do código-fonte e navegação para o diretório
cd [diretório do projeto]
# 2. Build da imagem Docker
docker-compose build
# 3. Execução do contêiner Docker
docker-compose up -d
---
Se for executado com sucesso, você pode ver a página padrão do Laravel em http://localhost:8080.
---
## PoC (Verificação da Vulnerabilidade)
# 1. Extrair a APP_KEY do Laravel dentro do contêiner
docker exec -it laravel_app bash
cat /var/www/html/laravel/.env | grep APP_KEY
# 2. Com a APP_KEY extraída, insira-a no exploit.py e execute
python exploit.py
# 3. Se o HTML da página do Laravel for retornado normalmente, significa que o payload por meio da APP_KEY foi transmitido com sucesso.
---
## Avisos
- Nas versões posteriores ao Laravel 5.7.28, esta vulnerabilidade foi corrigida e não funciona mais.
- O código PoC (exploit.py) foi escrito com base em técnicas de ataque publicamente divulgadas.
---
## Referência
- https://nvd.nist.gov/vuln/detail/cve-2018-15133
- https://laravel.com/docs/5.7/releases#laravel-5.7.27