image_upload.php
файл сайта image_upload.php
использовался для загрузки файла 89471928047.php.jpg
Это была простая форма загрузки файла, которая копирует файл tmp в ту же папку изображений. Как им удалось выполнить его и загрузить в него другие файлы. Кто-то знает, как это возможно? PHP version was 5.1.6
, которая обновляется точно час назад или по расписанию с хостом до 5.3.8
… что такое совпадение?
Используя AddType
в вашем файле .htaccess, вы можете добавить много других расширений, из которых можно запустить PHP. Как правило, как расширения .html
можно использовать, используя PHP внутри себя. Итак, да, это возможно:
AddType application/x-httpd-php .jpg
Вы можете проверить это, если хотите.
AddType application-x-httpd-php .jpg
<?php echo 'foo'; ?>
<?php echo 'foo'; ?>
Если все идет так, как планировалось, на экран выводится «foo». Вы можете расширить это, чтобы перемещать файлы /tmp
если хотите.
Определенно, с чем вы хотите быть очень осторожным.
Другой способ, которым это могло быть сделано, – вызвать вызов require()
или include()
(или любой из методов _once()
), где хакеру удалось загрузить его файл badfile.php.jpg
, который был загружен в образ невинного образа:
<?php include $_GET["file"]; ?>
В приведенном выше случае (упрощенный пример) хакер может пройти по пути к своему файлу .php.jpg
и загрузить его содержимое и обработать его как PHP-код.
Require, Include и связанные с ними методы – это не единственные способы обработки внешних скриптов – к сожалению, вы можете использовать eval()
. Я бы надеялся, что вы ничего не сделаете. Если у вас были какие-либо скрипты на вашем сервере, которые использовали какую-либо одну из функций файла, чтобы прочитать содержимое другого скрипта, а затем eval()
чтобы оценить этот контент как PHP, это также может обеспечить уязвимое отверстие безопасности на вашем веб-сайте.
Проблема вызвана вашим сервером с использованием по умолчанию /etc/httpd/conf.d/php.conf:
rpm -ql php-5.1.6-39.el5_8 /etc/httpd/conf.d/php.conf /usr/lib64/httpd/modules/libphp5-zts.so /usr/lib64/httpd/modules/libphp5.so /var/lib/php/session /var/www/icons/php.gif
Содержимое /etc/httpd/conf.d/php.conf:
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> # Use of the "ZTS" build with worker is experimental, and no shared # modules are supported. LoadModule php5_module modules/libphp5-zts.so </IfModule> # # Cause the PHP interpreter to handle files with a .php extension. # AddHandler php5-script .php AddType text/html .php
Обратите внимание на последнюю строку AddHandler php5-script .php. Это вызывает эту проблему и нуждается в замене более безопасной конфигурации
Вы можете узнать больше об этом и о том, как применить исправление здесь (см. Последний ответ):
http://core.trac.wordpress.org/ticket/11122
также см. это:
Ваш image_upload.php
небезопасен, проверьте следующее:
Чтобы проверить, является ли это образ, который вы можете запустить getimagesize в файле, он вернет FALSE, если это не изображение.
Как можно выполнить этот файл? Во-первых, как вы знаете, что он был выполнен? Вы видели побочные эффекты?
Как смотреть журналы?
Проверьте дату и время загруженного файла и начните искать там подозрительную активность (посмотрите на параметры странного URL-адреса). После того, как вы найдете один или несколько IP-адресов, делая злые вещи, grep журнал для этих (тех) IP-адресов, чтобы увидеть всю историю.
Другая важная информация, которую нужно знать, – это написать сайт или использовать CMS или подобное, и в этом случае, что это такое и какая версия? Вы должны проверить опубликованные уязвимости и обновить в случае.