次のようなファイルをアップロードするのと同じくらい簡単です
GIF89a<?php
echo 'hi';
アップロード スクリプトがfileinfoを介してコンテンツ タイプをテストする場合、またはファイルを gif として識別するために必要な唯一のパターン/マジック ナンバーであるためmime_content_type()
、「GIF 画像データ、バージョン 89a」として認識される場合。
そして、OpenX アップロード スクリプトは明らかに提案されたファイル名を保持していました。つまり、この「イメージ」を foo.php としてサーバーに保存することができました。ここで、スクリプトを介してそのファイルを要求した場合、ウェブサーバーは通常/多くの場合、ファイル名拡張子によってのみコンテンツタイプを決定するため、php スクリプトとして実行されます。GIF89a
http://hostname/uploaddir/foo.php
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php は先頭GIF89a
をエコーし、ブロックを実行し<?php ...code...
ます。
<?php ブロックを gif コメントに入れると、少し洗練されますが、基本的には同じです。