[Безопасность] Список дырявых плагинов

Все уже знают, что очередной релиз WordPress 2.3.3 в основном призван исправить бреши в безопасности (как обычно русскую версию можно скачать у Кактуса), но гарантирует ли это, что на ваш блог не смогут посягнуть?

Можно ответить «Нет», если вы не уверены в тех плагинах, которые у вас установлены.
Например, сами разработчики WordPress настоятельно рекомендуют не использовать плагин WP-Forum, а я несколько расширю этот список за счёт информации с сайта БлогСекьюрити.

  1. WP TextLinkAds
  2. Плагин для размещения ссылок от известной конторы TLA версии ниже 1.1.3 подвержен уязвимости, благодаря которой злоумышленник может получить доступ к БД и компрометировать весь блог.
    Для исправления советуют либо скачать новую версию, либо найти строку 512 ($postId = $postId;) и заменить её на $postId = (int) $postId;.

  3. dmsguestbook
  4. Гостевая книга dmsguestbook вообще одна сплошная дыра. Тут вам и возможность дефейса, получение доступа к данным из wp-config.php, управление файлами и папками на сервере, и даже множественные XSS-уязвимости в купе с различными SQL-инъекциями.
    БлогСекюрити советуют вообще нафиг отключить этот плагин, т.к. даже в последней (1.8) версии много багов и уязвимостей.

  5. st_newsletter 2.x
  6. Плагин рассылки st_newsletter позволяет, применив специальный запрос, содержащий SQL-инъекцию, получить список всех пользователей и хэши их паролей.
    Заплаток пока что нет, так что отключаем плагин от греха подальше.

  7. Wordspew
  8. Относительно известный Live-чат Wordspew тоже подвержен злостным инъекциям, и тоже пока что нет официальных (и не официальных) багфиксов. Отключаем.

  9. wp-footnotes 2.2
  10. Известная добавлялка подписей к постам wp-footnotes тоже обросла уязвимостью, из-за которой «злодей» получает доступ к админ.панели плагина, просто обратившись по определенному УРЛ к сайту. И, следовательно, может «добавить» свой текст к вашим постам.
    И этот плагин без фикса, так что используйте на свой страх и риск.

На этом всё. Надеюсь теперь вы чувствуете себя ещё более защищенными.

[Plugins] Ajax Comments 2.09 (на халяву)

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

Так о чём это я? Ах да, наверное найдётся несколько человек, которые скачали и установили мою версию Ajax Comment, но не это главное, а то, что у меня в блоге с определенной периодичностью, при отправке комментария, выдавалась ошибка о «Время истекло. Сервер не ответил вовремя.».

Полез я искать новую версию этого плагина и был обрадован сообщением о «Заплатите $1». И не денег мне было жалко, чтобы ещё пару месяцев назад его купить, просто возможность оплаты была только через PayPal, который было лень регистрировать.

Тут на днях как раз прошёл регистрацию и купил-таки новую (2.09) версию и очень она мне понравилась, перечислю фичи от автора, а самое интересное выделю красным:

  • Не надо ничего изменять в коде шаблонов. Работает сразу после активации.
  • Применяет WordPress Plugin API, поэтому отлично работает с другими плагинами.
  • Проверка капч и валидация форм происходит на стороне сервера, без обновления страницы.
  • Сообщения об ошибке появляются в красном прямоугольнике над формой комментариев.
  • Картинка отправки комментария отлично смотрится с любым дизайном.
  • В архиве содержится подробная документация для любителей покопаться в исходниках.
  • Работает с комментариями на любом языке, благодаря поддержки локализаций и unicode-символов.
  • jQuery fade-эффект, делающий читателей счастливее. 😀
  • 60 сек таймайт на сервере не даст подвиснуть читателям.
  • Протестирован на текущих версиях Firefox, Internet Explorer 6/7, Opera, Netscape, и Safari.

Плагин теперь отлично работает с WP AJAX Edit Comments, который раньше приходилось отключать. Мне даже не пришлось вносить никаких изменений, чтобы плагин начал адекватно работать с капчей, так что всё что я сделал — это перевёл пару строчек ошибок на русский.

И главное, на мой взгляд, что теперь вместо ява-скрипт библиотеки Prototype+Scriptaculous используется более легкий (по размерам) jQuery.

Ну а вот вам и ссылочка на сам плагин Ajax-Comments 2.09 (90 kb), думаю автор не будет сильно плакать, что я его раздаю на халяву, ведь «какой русский не любит халявы», к тому же GNU GPL v2 позволяет мне это делать, я же внёс изменения в исходные коды)))

Сразу оговорюсь — плагин тестировал мало, поэтому прошу в комментах хорошенько его «помучить» и оставить отзывы по работе.

ПыЦ: Плагин работает с WP 2.1 — 2.3.x и WP MU.

Новогодний подарок блоггерам — WordPress 2.3.2

Как всегда я плетусь в самом конце WP-движения, это я о скорости реакции на анонсы релизов)
Уже успели выложить и две разные версии русского вордпресса 2.3.2, который только-только сошёл с конвейера (от Максима и от mywordpress.ru), но, тем не менее, я всё же рискну быть не оригинальным и отписать ещё раз изменения со своими комментариями.
И так, данные взяты из официального анонса.

Улучшена производительность, при обработке постов, перед выводом пользователю.
Надеюсь, я правильно понял, то, что написано в этом тикете.
При выводе поста, да и любой другой страницы, производится множественный вызов функции get_post, через которую работают такие функции как the_title, get_permalink и т.д. Причём, хоть данные полученные от get_posts и кэшируются, но фильтрация/отбор данных происходит после получения уже ВСЕХ данных, а не ДО, что естественно сказывается на производительности. В 2.3.2 это пофиксили.

Улучшена работа функции is_admin(). Теперь нет возможности получить доступ к «Черновикам» администраторов обычному пользователю.
О «дыре» с доступом к черновикам я уже писал, вот теперь это уже и не дыра вовсе.

Ошибки базы данных теперь показываются только при включенном WP_DEBUG.
Ещё одна перестраховка от «шибко-хитрых-хацкеров», чтобы те не могли узнать названия таблиц вашей установки WordPress, при попытках sql-инъекций.

Во время установки WordPress, при нехватке прав у пользователя БД, будет выдаваться ошибка.
А, следовательно, и не будет создан «кривой» config.

Появился шаблон для отображения ошибок при подключении к БД.
Теперь любой пользователь может внести изменения в файл wp-content/db-error.php, который будет показан при невозможности подключиться к БД (например, если превышено количество одновременных подключений).

Добавлена дополнительная проверка при обработке текста, который конвертируется в ссылку.
Тут имеет место быть событие, когда вы вставляете текст с http://, а он автоматически конвертируется в аналогичную ссылку. Повышена производительность за счёт того, что теперь функция преобразования различает обычные ссылки, фтп и почтовые ящики. Стоит отметить, что, судя по всему подобные ссылки (за исключением ящиков) автоматически будут отображаться с rel=»nofollow», во всяком случае, тут всё указывает на это.

Внесены изменения в работу рассылки почты по POP3, чтобы избежать возможных XSS-атак.
Ещё один баг закрыт.

Запрос пароля к записи будет выдаваться только тем пользователям, у кого есть права на изменение этой конкретной записи. Всё это относится только к сторонним-клиентским программам, работающим через XML-RPC.

Ещё одно изменение в XML-RPC, которое связано с отображением данных о пользователе, при вызове wp.getAuthors.
Данные теперь выводятся в более ограниченном формате, а так же добавлена проверка, что пользователь имеет минимальные права (редактирование постов), чтобы ограничить распространение информации, такой как имя пользователя, его логин и прочее.

И ещё целый ворох проверок в методах XML-RPC и App, для улучшения безопасности.

И совсем маленькое добавления при проверке путей файлов, на win-серверах.


Вот и всё. Вроде бы и не много, но и не мало. Ставить, я думаю, стоит, но… только после того, как голова и руки будут действовать активно и правильно, апосля празднования НГ, а то можно дел наворотить)

И ещё, если тов. Лекактус не против, то я бы попросил его немного подправить текст на mywordpress.ru, а то что-то слишком много орфографических ошибок и местами не понятный текст. Если нужна помощь, то могу предложить свои услуги, но опять-таки — после праздничков.

Многоуважаемые хакеры, вы имеете последнюю возможность взломать этот блог и при помощи перечисленных дыр, потому что я не тороплюсь обновляться)

А мужики то не знают: защита в WordPress 2.4, дыры и апдейт в 2.3 и подсветка синтаксиса

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

Улучшенная система безопасности в WordPress 2.4

Хоть сам движок ещё готов процентов на 30, но уже заявлены приятные нововведения, такие как использование безопасных куки и новый алгоритм шифрования хранимых паролей.
Про протокол безопасных куки (secure cookie protocol) можно прочитать в этом .pdf (116Kb на англ.), если кратко, то новые куки выглядят так:
имя пользователя|время действия|HMAC(имя пользователя|время действия|ключ)
Причём ключ = HMAC(имя пользователя|время действия|секретный ключ), во как!

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

Пароли же теперь буду хэшироваться при помощи phpass, который к обычному md5-хэшированию добавляет ещё возможность подсолить («salt» — представляет собой некий набор символов; обычно это символы обоих регистров, цифры и спецсимволы, которые накладываются или склеиваются с самим паролем или с хэш-суммой пароля) и даже растянуть короткий пароль. Всё вместе это значительно увеличивает сложность взлома путём перебора хэшей.

Так же не стоит забывать, что phpass так же будет применяться в Drupal и phpBB, а значит, существует вероятность, что можно будет использовать одни и те же регистрационные данные в пределах сайта для каждого пользователя, причём без дополнительных извращений.

В принципе, код, отвечающий за кукисы и шифрование phpass’ом, уже можно скачать и опробовать, вот только не делайте этого на активном блоге, т.к. таблица пользователей будет безнадёжно испорчена, а уж если вы ещё и бэкап не сделали…


Некоторые активные дыры в WordPress 2.3.x

1. Существует возможности при выполнении определенных действий, получить доступ к Черновикам (Drafts), созданным другими пользователями, в том числе и администратором. Поэтому старайтесь не хранить в черновиках конфиденциальную информацию. Пока что дыра есть в 2.3.1 и скорее всего во всех предыдущих версиях. Ждём-с багфикса с апдейтом.

2. Дыра в плагине Wp-ContactForm, при помощи которой злоумышленник может выполнить инъекцию HTML кода и получить пересылаемые данные. Баг фикса нет, но сам плагин старенький, поэтому советую вам просто поменять его на Cforms II, тем более вы можете скачать русскую версию у Соники.

3. Уязвимость обнаружили ребята из Seo Egghead. Заключается она в возможности внедрять ссылки в старые посты, причём, обычно выглядит это так, как будто и должно быть, только вот PR естественно снизится. Подвержены такому «хаку» все версии с 2.1 по 2.3.1 включительно.
Яйцеголовые ребята советуют произвести поиск по блогу по таким словам, как: mp3, download, adshelper, softicana, casino, viagra и тому подобному (не мне вам рассказывать, чем обычно спамят)))


Обнови пермалинки правильно

У некоторых пользователей после перехода на 2.3.1 появился скверный глюк, а точнее ошибка:
«Warning: Invalid argument supplied for foreach() in /home/wallis3/public_html/wordpress/wp-includes/classes.php on line 92»
Лечится это довольно просто, но и не очевидно одновременно: нужно сперва сбросить пермалинки на те, что установлены по умолчанию (Настройки > Постоянные ссылки > По умолчанию > «Обновить шаблоны ссылок»), после чего можно вернуть свои старые шаблоны и обновить повторно — глюк должен исчезнуть.


Разметка кода на блогхостинге WordPress.com

Возможно, полезность данной заметки сомнительна, потому как у нас большой популярностью WordPress.com (не путать с бесплатной блог-платформой WordPress) не пользуется, куда чаще используют BlogSpot/Blogger или ЖЖшку, но была — не была.
Если вы ведете блог на WordPress.com, то для красивой разметки исходных кодов, у вас есть строенная реализация. Работает это так
[sourcecode language='язык']
строчка код 1
...
строчка код n
[/sourcecode]

, где язык — это на выбор: cpp, csharp, css, delphi, java, jscript, php, python, ruby, sql, vb, xml.
За основу взят SyntaxHighlighter, нашего соотечественника (как я понял) Алекса Горбачева.


Помоги найти трэкбэк

Оказывается, среди тэгов разметки WordPress есть такое чудо, как trackback_rdf, который внедряет на страницу не видимый для пользователя код, применяемый некоторыми программами и поисковыми ботами, для определения адреса трэкбэка. Сам тэг должен размещаться внутри Loop’а и быть скрыт в html-комментарий, чтобы не попадаться на глаза читателю. Выглядит это примерно вот таким образом:


Ну вот на сегодня и всё. До скорого. И берегите себя и свой блог.

Anti Spam Image 0.7 — Обновление с обновлением

Давненько я не радовал вас, да и себя, новыми плагинами в собственной модификации. И хотя курсовую мне завернули и я всё ещё не могу вернуться к полноценному блогингу, но маленькой «приятностью» хочу с вами поделиться.

Встречайте Anti Spam Image 0.7. Это всё тот же, народно любимый (судя по тому, как часто встречаю его в различных блогах) капча плагин, в редакции Максима. Однажды я уже менял его, чтобы обеспечить совместимость с Ajax Comment, теперь пришло время ещё одной востребованной особенности — обновления капчи без перезагрузки всей страницы.

Где только не упоминали/проклинали эту капчу, потому что код, генерируемый на картинке, завязан на php-сессии и, если слишком долго вводить комментарий, капча уже не срабатывала, приходилось перезагружать страницу, перенося сам текст комментария. В общем сплошной геморой для читателей, который отбивает желание, что-либо вообще комментировать.

Теперь всё намного проще — кликаем по капче и она обновляется. Всё гениальное — просто.

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

P.S.: Все последнии версии файлов можно найти на странице»Список файлов для скачки«, ссылка всегда в сайдбаре висит.
P.P.S: Приятного и продуктивного использования.
Проверить «обновляемость» можно и у меня в блоге. Кликайте себе на здоровье.