Как рекурсивно удалить вставленный код между двумя строками в файлах PHP с помощью SSH

У нас есть собственный сервер разработки под Linux (Ubuntu). Несколько дней назад был внедрен подозрительный код. Напомню, что у нас более 300 проектов. Код рекурсивно внедряется почти в каждый файл.

Мы пробовали Dreamweaver в Windows в локальной сети для поиска и замены, но обнаружили другую причину, которая не работает с DreamWeaver;

Внедренный код, запускаемый с PHP, запускающим TAG:

<?php $ldtxxk

, и между ними есть много зашифрованного кода, но все файлы имеют разный код, НО заканчивающийся на PHP, заканчивающийся TAG. Таким образом, из-за полностью измененного кода во всех файлах мы не можем очистить его с помощью какого-либо программного обеспечения для поиска и замены.

Таким образом, нам нужна какая-то команда SED с регулярным выражением в SSH, которая может выполнять рекурсивную работу с конкретным директором для

найдите от

<?php $ldtxxk

до

?>

и удалите все, включая начало и конец тегов PHP.

Заранее благодарим.

0
задан 9 February 2016 в 09:33
1 ответ

Сначала попробуйте что-нибудь вроде этого. Он удаляет (d) текст между двумя образцами (разделенный косой чертой):

sed '/<?php $ldtxxk/,/?>/d' file_with_injected_code.php

Если результат выглядит хорошо, вы можете вставить «-i», чтобы заменить содержимое файла:

sed '/<?php $ldtxxk/,/?>/d' file_with_injected_code.php

Затем вы можете объедините команду sed с командой find для рекурсивного поиска файлов php, начинающихся в рабочем каталоге:

find -name '*.php' -exec sed -i '/<?php $ldtxxk/,/?>/d' '{}' \;

Если вы исправили файлы php, вам следует выяснить, как злоумышленник получил доступ. Проверьте файлы журналов!

Доступен ли ваш компьютер из Интернета?

  • У вас есть FTP-сервер? Возможно, со слабыми паролями? Рассмотрите возможность изменения этих паролей или использования SFTP с открытыми ключами.
  • У вас есть уязвимое приложение php? Возможно, злоумышленник использовал его для загрузки php-скрипта. Переместите папку загрузки за пределы корневого каталога, запретите загрузку файла php или удалите разрешение из файлов, чтобы они не интерпретировались / не доставлялись веб-сервером.
1
ответ дан 4 December 2019 в 16:42

Теги

Похожие вопросы