Файл PHP переименован в JPG и загружен на сервер с угрозой?

1

У нас есть сервер, который был скомпрометирован, который работает с WordPress и Magento и запускает их примерно на 5 доменах на одном сервере.

Хакер загружал там вредоносные скрипты через всю файловую систему в сотнях мест. На этом этапе это кошмар, и я все еще не могу найти точку входа.

Я просто заметил, что одно из полей загрузки изображений AJAX позволяет мне переименовать файл PHP в формате.jpg и загрузить файл на сервер.

Когда я получаю доступ к файлу PHP.jpg в браузере, он выполняет разбитое изображение.

Поэтому я не уверен, сможет ли хакер загружать здесь PHP файл и обращаться к нему как к файлу PHP, или если он просто будет служить ему как сломанный образ изображения, как это было для меня в браузере?

Какие-нибудь идеи о том, насколько это может угрожать безопасности? Может ли это быть моей точкой входа, когда хакер получил первоначальный доступ? Или факт, что он служит сломанным изображением вместо обработки файла PHP при загрузке в моем браузере, означает, что он несколько безопасен?

Любая помощь приветствуется, спасибо

  • 0
    если вы не сказали своему серверу, что файлы .jpg должны запускаться через php, это абсолютно безопасно. Помните, что нет такой вещи, как "php scripts". Есть только файлы с блоками кода php внутри них. Если файл никогда не подходит к интерпретатору php, код php остается тем, чем он является на самом деле: простым текстом.
  • 0
    Если файл называется .jpg , сервер не будет запускать в нем код PHP.
Показать ещё 2 комментария
Теги:
security

2 ответа

2

Трудно сказать, сделал ли хакер что-то, фактически не проверив, что там.

Что касается защиты будущих загрузок изображений, я бы посоветовал использовать функцию finfo в PHP http://php.net/manual/en/function.finfo-file.php, чтобы узнать, принадлежит ли файл к любому из утвержденных типов mime, которые, кстати, должны ограничиваться только типом типов ограниченного типа.

Также вы должны не учитывать использование исходного изображения, а вместо этого скорректировать его версию, чтобы пользователи не загружали огромные изображения или что-то в этом роде.

Ответ:
Обычно (в зависимости от конфигурации веб-сервера) никто не может выполнить файл PHP, если он имеет другое расширение, они могли бы загрузить его, но они не могут его запустить, по крайней мере, в любой общей конфигурации.

Поэтому теоретически вам не нужно беспокоиться об этом, но будьте обеспокоены тем, что кто-то тратит время на то, чтобы взломать вас, и это означает, что вы должны тратить время на защиту сайта и сервера.

Я бы рекомендовал искать статьи о том, как защитить ваш конкретный сервер и конфигурацию, и убедиться, что вы обновили программное обеспечение, ОС и т.д. До последних обновлений безопасности.

  • 0
    И как это должно быть ответом на вопрос? Это всего лишь общие намеки ...
  • 0
    Там я подчеркнул, где фактический ответ. Но в общих чертах я пытаюсь понять всю проблему и пытаюсь ответить не только на вопрос, но и на то, как самому справиться с этой ситуацией. Думаю, тогда мне следовало бы быть более ограниченным вопросом.
Показать ещё 1 комментарий
0

Возможность загрузить файл с расширением.jpeg, но контент PHP не является уязвимостью сам по себе. Однако:

  1. если злоумышленник пишет всю файловую систему, у вас может быть функция загрузки с уязвимостью обхода каталога, которая нуждается в исправлении, в идеале, не позволяя загрузчику самостоятельно выбирать свое имя файла;

  2. есть и другие проблемы, связанные с межсайтовым скриптингом, когда вы позволяете пользователям загружать контент, который будет обслуживаться с одного и того же имени хоста, как и сайт;

  3. возможно, стоит проверить загруженный файл, используя что-то вроде getimagesize() чтобы убедиться, что у вас есть файл JPEG и не смешные измерения, но, учитывая возможность "файлов хамелеона, которые могут быть интерпретированы как несколько разных типов, это не обязательно является водонепроницаемым, так что в лучшем случае это "защита в глубину".

Получение веб-сервера для запуска файла.jpeg в виде кода PHP может произойти путем:

  1. возможность записи в конфигурацию сервера для связывания.jpeg с обработчиком PHP. Обычно это происходит из-за того, что другая уязвимая функция загрузки файлов позволяла злоумышленнику писать файл .htaccess в том же каталоге для Apache.

  2. скрипт PHP с дырой безопасности локального файла. Обычно это код:

    включает в себя ( "включить/переменный $");

где злоумышленник может получить контент в $variable, чтобы указать на something.jpeg. Обычно include/require никогда не следует использовать с переменными, если только эти переменные явно не ограничены несколькими известными значениями.

Другая вероятная возможность, если у вас загружена вредоносная страница, загруженная на ваш сервер, заключается в том, что ваш вход в систему скомпрометирован.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню