Может ли кто-нибудь объяснить эту инъекцию PHP-кода для меня?

Я получаю запросы на неожиданные URL-адреса на моем сервере.

В частности, для /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E

Кажется, это происходит каждые несколько часов.

Я запустил URL-адрес через http://www.url-encode-decode.com/, и он выглядит как:

phppath/php? -d allow_url_include = on -d safe_mode = off -d suhosin.simulation = on -d disable_functions = "" -d open_basedir = none -d auto_prepend_file = php://input -n

Что пытается сделать здесь злоумышленник?

Ответ 1

Атакующий пытается использовать CVE-2012-1823, это применимо только в том случае, если ваш PHP используется в режиме CGI (mod_php не уязвим для это).

Использование -d встраивания параметров в PHP для двоичного злоумышленника отключает различные механизмы защиты, которые ваш PHP может иметь и выполняет PHP-код напрямую, используя auto_prepend_file (автоматически выполняет PHP-код перед обработкой любого файла PHP), а php://input - это поток данных запроса POST.

Если ваш учет в веб-сервере не является обычным, вы, вероятно, не узнаете, какой атакующий имел в запросе POST (данные POST не регистрируются в обычном режиме).

Проверьте свой PHP, например. используя script следующим образом:

<?php phpinfo();

PHP-версия находится в первой строке, сравните ее с определением CVE. Если вы используете уязвимую версию, обновите ее как можно скорее, также найдите строку Server API, если она не содержит что-то с CGI, вы должны быть в безопасности на данный момент, но с использованием устаревшей версии PHP никогда не бывает хорошим.

Ответ 2

злоумышленник пытается обновить ваш конфигурационный файл php (php.ini) allow_url_include, safe_mode - разные настройки конфигурации php, которые важны для безопасности, поэтому по умолчанию они отключены.