Есть скрипт в utf-8 без Boom, в нем подчеркнул фрагмент кода в непонятной кодировке:
Когда я копирую этот фрагмент кода (Ctr+C) и вставляю в этом же, либо в любом другом текстовом файле или текстовой области (Ctr+V), то у меня без перекодирования он же отображается как: eval(gzinflate(base64_decode(
и тут же на этот файл кидается антивирь и убивает его. Пока же этот фрагмент кода находится в этой непонятной перекодировке, антивирь на него не реагирует.
Что за кодировка, которая на лету при копи-пасте отображается уже в читаемом виде и за которой антивирь не видит реального кода?
Формат \xAA
является представлением символа с шестнадцатеричным кодом AA
В вашем случае,
\x65 = e
\x76 = v
и так далее. В итоге собирается строка eval(gzinflate(base64_decode(
В этой строке
base64_decode
- Декодирует данные, закодированные алгоритмом MIME base64.
gzinflate
— Распаковывает строку
eval
- Исполняет строку, переданную в параметре code, как код PHP
Т.е. на вход base64_decode
подается некая кодированная строка (та, которая у вас после "непонятных символов"), она декодируется, распоковывается(gzinflate
) и выполняется у вас на сервере(eval
).
Другими словами, кто-то подсунул вам во входные данные вируса/бекдора/шифровальщика/еще какую гадость в надежде, что ваши скрипты не валидируют пользовательские данные, он запустится и устроит вам веселую жизнь. Вы же валидируете данные?
Ради интереса можете убрать из этой строки eval
, и посмотреть, в какой конкретно код декодируется эта строка.
Коды символов UTF-8. Не рекомендуется использовать eval http://php.net/manual/ru/function.eval.php
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как вывести число с сотыми, если число уже к примеру: 52, чтобы вывести 5200?
Есть изображение: *png, нужно вывести изображение с помощью PHP