
DockerベースのCVE-2018-15133 Laravel APP_KEY アンシリアライゼーション脆弱性のPoC環境。Laravel <= 5.7.27 上で悪意のあるペイロードによるリモートコード実行を検証するエクスプロイトスクリプトを含む。
ホワイトハットスクール 3期 28組 イェビン 仮想化 - 脆弱なDocker構成 https://github.com/yeahhbean/Laravel-CVE-2018-15133
このプロジェクトは、CVE-2018-15133 の脆弱性(Laravel 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 イメージのビルド docker-compose build

Docker コンテナの実行 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