Мой сайт о WordPress и PHP
 
21 июля 2006

Найдена уязвимость в WordPress

Читали 2874 раза
Рубрика: Уязвимости
Навигация: Главная » WordPress » Уязвимости

Источник: http://www.securitylab.ru/vulnerability/270044.php

Описание: уязвимость позволяет удаленному пользователю получить доступ к важным данным.

Уязвимость существует из-за того, что подробное сообщение об SQL ошибке возвращается пользователю. Злоумышленник может указать некорректное значение параметра "paged" в сценарии index.php и получить данные об используемом префиксе таблиц. Пример:

http://сайт/index.php?paged=-1

Решение: для версии 2.0.3 вы можете просто скачать исправленный файл (12Кб). Скопируйте его в /wp-includes/.

Для других версий: в файле /wp-includes/classes.php после следующих строк:

// Paging
if (empty($q['nopaging']) && ! $this->is_single && ! $this->is_page) {
   $page = $q['paged'];
   if (empty($page)) {
	$page = 1;
   }

добавляем:

$page = abs((int)$page);
if ($page===0) $page=1;
google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

3 комментария к “Найдена уязвимость в WordPress”

  1. Berlic:

    В таком случае еще и на "нечисло" надо проверять.
    Текст вместо цифры аналогичную ошибку выдает.

  2. WP_USER:

    у меня заработала на "нечисло" следующая комбинация
    if (!eregi("[[:alnum:]]", $page)) {
    $page=1;
    }
    if (eregi(".[a-zA-Z]", $page)) {
    $page=1;
    }
    1 условие отсекает запрос типа index.php?paged=нелатиница
    2 условие отсекает запрос типа index.php?paged=latinica

    наверняка есть более изящный способ о котором я не знаю

  3. Максим:

    Есть вариант попроще:

    $page = abs((int)$page);
    if ($page===0) $page=1;


Оставьте комментарий! (Вы согласны с правилами)

 

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

При добавлении кода (html, php) заменяйте < на &lt; и > на &gt;.
Внимание: антиспам - зверь! Копируйте своё сообщение перед отправкой. На всякий случай.