Устранение критических уязвимостей в версии MODX 2.6.5

Уязвимость MODX

Файлы, которые следует проверить:

Используя уязвимость заражают в 1ую очередь файлы /index.php и /manager/index.php, в них сверху вставляется код, который редиректит на другой сайт.

Проверьте права к файлам. Для этого если у вас есть доступ ssh к серверу, выполните команду

find / -type f -perm 0777

Чтобы найти все файлы с расширением php и правами 777 выполните команду:

find . -name "*.php" -type f -perm 0777

Чтобы удалить все файлы с именем somename.php добавьте к команде find флаг -delete:

find . -name "somename.php" -type f -delete

Чтобы поменять все права к найденным файлам:

find / -type f -perm 0777 -exec chmod 640 {} \;

Опрееделяем какой код вставили и по куску кода проверяем все файлы. В моём случае кусок вредоносного кода содержал eval(base64. Выполним команду поиска:

grep -rnw './' -e 'eval(base64'

Если файлов много, то нужно снова использовать консоль для удаления вредоносного кода. Команда замены кода sed (от англ. Stream EDitor) — потоковый текстовый редактор:

sed -i "s/вредоносный код/на что заменить/g" {} \;

Найдём все файлы по шаблону в текущей директории и ниже и проведём замену кода во всех файлах с расширением php:

find . -name "*.php" -type f -exec sed -i "s/вредоносный код/на что заменить/g" {} \;

Благодарности

Хотел бы поблагодарить Ивана Климчука (Alroniks) и agel_nash за информирование и подтверждение этих проблем и помощь в обеспечении безопасности MODX.