Авг 11

Подвержены этому багу все версии, включая и Wordpress 2.8.3.

Заключается он в следующем – на любом сайте можно сбросить административный пароль. Так во всяком случае написано в источнике, откуда собственно я об этом узнал.
Достаточно всего лишь пойти на сайте на котором установлен Wordpress по следующему url:
http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]=
при этом на почтовый адрес, указанный в учётной записи администратора (ID=1 – это важно – запомните)

А теперь что удалось выяснить мне:

  • эксплойт работает… пароль сбрасывается и высылается на почту сгенерированный самим Wordpress-ом;
  • особенно не повезёт тем, у кого не работает отсылка писем (бывает такое) – сможете получить доступ к своему аккаунту только путём правки базы MySQL своего блога;
  • а теперь самое важное – пароль сбрасывается для пользователя с наименьшим ID – если вы воспользовались ранее мудрыми советами по защите своего блога, где кроме всего прочего рекомендуется удалять административную учётную запись по-умолчанию. Хотя опять же, если вы сразу же после этого создали нового пользователя с ID=2 – то у вас проблемы!!!
  • на данном блоге у меня админ-пользователь не с наименьшим ID – так что можете даже не пытаться :) – не повезёт Жилинскому :) (его пользователь имеет наименьший ID)
  • даже если вы залогинились в блог как админ и в браузере зашли на http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]= – всё равно сбросится пароль пользователя с наименьшим ID

Мои рекомендации:

  • срочно создаёте нового пользователя с административными правами
  • меняете привилегии пользователя с наименьшим ID (по-умолчанию это admin) на “Подписчик” или удаляете его. Только если будете удалять – не забудьте переназначить все его записи и комментарии на нового админа. Да и если у вас всего два пользователя в блоге – не удаляйте с наименьшим ID – иначе вы ничего не исправите.
  • не забывайте делать регулярные бекапы.

Ну и конечно будем ждать обновления от команды Wordpress.

Update:
Оказывается решение проблемы уже давно есть.
Находим в файле wp-login.php 190-ю строку if ( empty( $key ) ) и меняем её на if ( empty( $key ) || is_array( $key ) )

7 Responses to “Неприятный баг в Wordpress”

  1. Жилинский Says:

    Забавно, но уязвимость не критическая – ну сбросят пароль админу, ну придёт ему письмо – и что? Профита нет, фишка бесполезна.

  2. StewardTZ Says:

    А то что пароль всего 12 символов.. и только буквы и некоторые служебные символы (типа & # $) – такой пароль можно подобрать брутфорсом (перебором по словарю) быстрее чем админский пароль, созданный человеком.

    Хотя конечно у многих я думаю пароль проще чем сгенерированный самим Wordpress-ом :)

    Я бы не сказал что уязвимость не критическая.. ведь на Wordpress работают не только блоги…

  3. Жилинский Says:

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

    admin update:
    я удалил rel=”nofollow” – хорошие ссылки должны фоловится :) – не стесьняйся

  4. boris Says:

    будет неприятно если пароль будут сбрасывать каждые пять минут

  5. StewardTZ Says:

    2 Жилинский – ну вообщем я конечно согласен :) )))

    2 boris – уже вышло обновление от команды Wordpress – версия 2.8.4

  6. -bsv- Says:

    Спасибо!

    Но, как уже сказали выше, уже вышло обновление. К тому же, только и русская версия уже появилась. Так что – можно обновляться :)

  7. StewardTZ Says:

    Ну я как всегда буду ждать Lecactus-а :)
    Да и эту уязвимость в своём блоге я закрыл :) – напрямую в коде

Leave a Reply