Это может быть так же просто, как загрузить файл типа
GIF89a<?php
echo 'hi';
Если ваш скрипт загрузки проверяет тип содержимого с помощью fileinfo или mime_content_type()
, он распознается как «данные изображения GIF, версия 89a», поскольку GIF89a
- это единственный шаблон / магический номер, который требуется для идентифицировать файл как gif.
И скрипт загрузки OpenX, очевидно, сохранил предложенное имя файла, то есть было возможно сохранить это «изображение» как foo.php на сервере. Теперь, если вы запросили этот файл через http://hostname/uploaddir/foo.php
, скрипт был выполнен как php-скрипт, потому что веб-серверы обычно / часто определяют тип контента только по расширению имени файла, например, через
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php затем повторяет ведущий GIF89a
и выполняет блок <?php ...code...
.
Поместить блок <? Php в GIF-комментарий немного сложнее, но в основном то же самое. </p>