
CVE-2018-15133 Laravel APP_KEY 역직렬화 취약점을 위한 Docker 기반 PoC 환경입니다. 악성 페이로드를 통해 Laravel <= 5.7.27에서 원격 코드 실행을 확인하는 익스플로잇 스크립트를 포함합니다.
화이트햇스쿨 3기 28반 이예빈 가상화 - 취약한 도커 구성 https://github.com/yeahhbean/Laravel-CVE-2018-15133
이 프로젝트는 CVE-2018-15133 취약점(라라벨 APP_KEY 역직렬화 취약점)을 검증(PoC)하기 위해 구성된 Docker 기반 환경입니다.
Dockerfile과 docker-compose.yaml만으로 취약한 환경을 구축하고, exploit을 통해 정상적으로 PoC가 이루어짐을 확인했습니다.
Dockerfile과 docker-compose.yaml을 통해 자동으로 취약한 환경이 설치 및 구동됩니다.
| 파일명 | 설명 |
|---|
| Dockerfile | PHP + Composer + Laravel 5.7 설치용 |
| docker-compose.yaml | 전체 서비스(Nginx, PHP, MySQL) 구성 |
| nginx/default.conf | Nginx 리버스 프록시 설정 파일 |
| exploit.py | APP_KEY 기반 PoC 코드 |
디렉토리 구조

디렉토리 이동 cd C:\Users\Admin\Desktop\WHS\CVE

도커 이미지 빌드 docker-compose build

도커 컨테이너 실행 docker-compose up -d

컨테이너 접속 docker exec -it laravel_app bash

컨테이너에서 나와서 PoC 실행 exit python exploit.py

브라우저 접속 웹 브라우저를 열고 http://localhost:8080

# 1. 소스 다운로드 및 디렉토리 이동
cd [프로젝트 디렉토리]
# 2. Docker 이미지 빌드
docker-compose build
# 3. Docker 컨테이너 실행
docker-compose up -d
---
성공적으로 실행되면 http://localhost:8080에서 Laravel 기본 페이지를 확인할 수 있습니다.
---
## PoC (취약점 검증)
# 1. 컨테이너 안에서 Laravel APP_KEY 추출
docker exec -it laravel_app bash
cat /var/www/html/laravel/.env | grep APP_KEY
# 2. 추출된 APP_KEY를 이용하여 exploit.py에 입력 후 실행
python exploit.py
# 3. 정상적으로 Laravel 페이지 HTML이 반환되면, APP_KEY를 통한 페이로드가 성공적으로 전달되었음을 의미합니다.
---
## 주의 사항
- Laravel 5.7.28 이후 버전은 이 취약점이 패치되어 더 이상 작동하지 않습니다.
- PoC 코드(exploit.py)는 공개된 공격 방식을 참고하여 작성되었습니다.
---
## Reference
- https://nvd.nist.gov/vuln/detail/cve-2018-15133
- https://laravel.com/docs/5.7/releases#laravel-5.7.27