В цикле сообщений буду писать о актуальных способах заливки веб-шелла на WP, а так же наработок к последней версии(3.4.2) и ниже.
1. WordPress <=3.4.2 заливка веб-шелла через "редактор файлов":
Требование: Права администратора блога, доступ в администраторскую панель блога
Инструкция:
Для начала нам нужно перейти в редактор файлов. Сделать вы это можете, либо перейдя по адресу
"/wp-admin/theme-editor.php", либо в меню
"Внешний вид -> Редактор":
В правой стороне сайта, перед вами будет блистать кликабельные ссылки на редактирование шаблонов/файлов сайта. Соответственно наша цель
редактировать любой из файлов так, чтобы на сайте это ни как не отразилось, для этого мы будем использовать шаблон ошибки 404 (404.php).
Наверное, у вас должен возникнуть вопрос, как это можно назвать безпалевным редактированием, ведь не кто не отменял изменение ссылки или удаление поста, что привело бы к выводу этого самого файла. Да вы правы, мы можем очень крупно пожелеть если при каждом переходе на несуществующую страницу пользователь будет видеть наш шелл, чтобы этого избежать мы введем GET переменную, можете назвать ее паролем, она будет проводником к нашему шеллу, если этой переменной не будет, то пользователь будет смотреть на родную страницу 404 ошибки. Пишем такой вот код:
PHP код:
if(!isset($_GET['password'])) {
// код шаблона 404 ошибки, который был в этом файле изначально
} else {
// код нашего шелла
}
Соответственно заменяем комментарии в коде, например на тот же wso, и получаем шелл.
2. WordPress <=3.4.2 заливка веб-шелла через "редактор плагинов":
Требование: Права администратора блога, доступ в администраторскую панель блога
Инструкция:
Для начала нам нужно перейти в редактор файлов. Сделать вы это можете, либо перейдя по адресу
"/wp-admin/theme-editor.php", либо в меню
"Плагины -> Добавить новый":
Смысл этого способы прост - Вам нужно загрузить новый плагин через форму в zip формате. Здесь есть два решения, либо вы берете и вставляете ваш шелл файл в любой из уже существующих плагинов, либо же вы создаете свой плагин и херачить туда шелл. И тот и этот вариант индентичны, но мне кажется интерснее было бы создать свой - шелл плагин! :-) Для этого вам нужно создать папку, например с названием "shell", поместисть в нее файл с вашим шеллом, и в
самый вверх этого "плгина" вставить код:
PHP код:
/*
Plugin Name:*****
Plugin URI:*****
Description:****
Author:***
Version:***
*/
Здесь перед вами встает два пути: написать ложную информацию в эти строки, типа "Plugin Name: Social share". и т.п., либо сделать эту информацию невидимой, как пример:
Здесь, вы видите установленный плагин без инфы - наш шелл, но вот в чем подвох, если просто эту информацию в исходнике плагинов не заполнять или заполнить пробелами, то WP это распознает и не даст загрузится плагинов. Здесь нам на помощь приходят стандартный набор программ в WIN, "таблица символов" (Меня Пуск -> Стандартные -> Служебные), там ищем пустой знак:
Копируем его там, и вставляем несколько раз как инфу в плагине(исходнике) и получаем шелл. Кстати если делать как мы сейчас (создаем свой плагин), и не будем прикреплять наш плагин к к какой-то части сайта (пример, wp_footer()), то мы увидем вот такую вещь в администраторской панели:
Отсюда два пути, либо быстро залить шелл в другую диру, и потом тупо к нему обращаться, либо же прикреплять шелл к какой то части сайта (добавлять в фильтр), тогда такого мы не увидим.