LINUX.ORG.RU

Многочисленные критические уязвимости в phpMyAdmin

 


0

1

Обновления с пометкой «срочно» - разработчики phpMyAdmin, средства управления базами данных MySQL, выпускают новые версии для двух развиваемых веток - 3.3.10.2 and 3.4.3.1. Причем все предыдущие релизы проекта имеют критичные уязвимости, а именно:

  • Ошибка в функции Swekey_login(), описанной в файле libraries/auth/swekey/swekey.auth.lib.php. Используя уязвимость, можно перезаписать переменные сессии, а также выполнить собственный PHP-код;
  • Данные, передаваемые функции PMA_createTargetTables(), описанной в файле libraries/server_synchronize.lib.php, проверяются неполностью перед вызовом функции preg_replace() с модификатором «e». Используя данную уязвимость, можно выполнить собственный PHP-код, переданный в URL через NULL-байт;
  • Данные, передаваемые функции PMA_displayTableBody(), описанной в файле libraries/display_tbl.lib.php, проверяются неполностью перед их использованием для включения файлов. Таким образом, у злоумышленника появляется возможность включать в текст скрипта любые локальные файлы.

В дополнение к вышесказанному были отмечены уязвимости в установочных скриптах, позволяющие выполнять любой PHP-код при перезаписанных переменных сессии.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Nicholass

SQL очень близок к естественным языкам, можно и в консольке посидеть.

Никогда табличек более чем с 10 стуолбцами не встречали? А запросик вот такого вида:

select
    parameter as values_parameter,
    sum(factv) as values_factv,
    sum(planv) as values_planv,
    avg(factv) as avg_factv,
    avg(planv) as avg_planv,
    sum(revenue) as values_revenue
from (
    select distinct * from (
        select
            values.id,
            values.parameter as parameter,
            values.factv,
            values.planv,
            values.revenue
        from
            v_childref,
            values,
            parameters
        where
            values.parameter = parameters.id and
            values.subject = v_childref.child and
            v_childref.parent in (
                select id from company where company.parent in (select hier from responsibles where userid=:myid)
            ) and
            parameters.paramclass = :pclass /*xxxx*/ and
            (values.vdate >= :dfrom or :dfrom is null) and
            (values.vdate <= :dto or :dto is null)

        union all

        select
            values.id,
            values.parameter as parameter,
            values.factv,
            values.planv,
            values.revenue
        from company c1
        join v_childref on c1.id = v_childref.parent
        join values on values.psubject = v_childref.child
        join parameters on values.parameter = parameters.id
        where c1.parent in (select hier from responsibles where userid=:myid) and
            parameters.paramclass = :pclass /*xx*/ and
            (values.vdate >= :dfrom or :dfrom is null) and
            (values.vdate <= :dto or :dto is null)
        ) tab
   ) tab2
group by parameter
order by parameter
отлаживать «в консольке» не доводилось? :-)

no-dashi ★★★★★
()

ЯХУ!!! Опять пару суток жить в офисе, отлавливать по сервакам червей и обновлять панели!!!!

desruptor
()
Ответ на: комментарий от no-dashi

> Никогда табличек более чем с 10 стуолбцами не встречали?

На 30-40 встречал.

А запросик вот такого вида:

Детсадовский запрос. Вполне читаемый.

Вижу ты не работал с реляционными базами никогда.

anonymous
()
Ответ на: комментарий от Fletch

>пора закрывать виртуалхост htaccess'ом.

что собственно я и сделал (:

leg0las ★★★★★
()

многочисленные ОЧЕРЕДНЫЕ уязвимости

ибо PHP - это стабильно и надежно, какеры всего мира рекомендуют ©

_________

//wfrr

anonymous
()
Ответ на: комментарий от yanka

А зачем? Есть же универсальный клиент к СУБД на Java, SQuirreL SQL называется.

_________

//wfrr

anonymous
()
Ответ на: комментарий от zloy_linuxoid

- Пишут запросы в одну строку, которая автоматически переносится несколько раз, образуя абзац на полэкрана
- Не пишут комментарии, вообще
- Копипастят код
Всё это и многое другое - в модуле OnPay для инет-магазина OpenCart. Это был мой первый опыт чтения кода на PHP (надеюсь, он же последний).

burjui
()
Ответ на: комментарий от adepto

ну так освой консоль. 12345 на рута тоже проще.

tazhate ★★★★★
()
Ответ на: комментарий от Nicholass

а чем лучше такой запросик отлаживать в phpMyADMIN?

Ну попробуй такой запрос набрать в какой-нибудь консольной утилитке, , а потом запустить его же, закомментировав один из внутренних подзапросов

Да и вообще, потянет ли MySQL такой запросик?

Ну если он его не потянет, то нафиг он такой вообще существует???

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Дай шелл, попробую ) У меня нет такой базы :))))) Кроме того, он требует переменные, которые приходят из вне :)

where c1.parent in (select hier from responsibles where userid=:myid) and parameters.paramclass = :pclass /*xx*/ and (values.vdate >= :dfrom or :dfrom is null) and (values.vdate <= :dto or :dto is null) ) tab

Где определены ???: myid pclass dfrom dto ??? Вырывать из контекста я тоже могу :))))))

anonymous
()
Ответ на: комментарий от anonymous

Дай шелл, попробую

Может, еще и с рутовым эккаунтом??? :-)

Понятно, что это структурозаточено, я просто приводил этот пример для того, чтобы показать, что далеко не всегда запросы имеют вид «select * from guestobook.messages where postdate >= ...», и «в консольке» такие запрсоы писать - проще застрелиться. Не, ну конечно можно... Но не нужно.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Тогда нафига вообще этот ПХПМайАдмин? Например стоит Навикат Мискл, он и по ССХ соединится может :) Есть куча нормальных ГУИ не влияющих на работу сервера и не представляющих различные угрозы :) Я не предлагаю писать в консольке, я показал пример :) А вот безопасность прежде всего, особенно если, например магазин а не просто «ОБО МНЕ» :)

anonymous
()
Ответ на: комментарий от no-dashi

> и «в консольке» такие запрсоы писать - проще застрелиться.

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

anonymous
()
Ответ на: комментарий от no-dashi

> отлаживать «в консольке» не доводилось? :-)

А в чем проблема то? :) И вообще как можно это отлаживать НЕ ИЗ консоли?

P.S. А еще существует MySQL Workbench

anonymous
()
Ответ на: комментарий от no-dashi

А я вот не уловил, в консоли что текстовые редакторы отменили? Бедненькому уприходится cat << EOF | mysql -p каждый раз набирать?

alx_me ★★☆
()
Ответ на: комментарий от no-dashi

А что мешает набирать в любимом текстовом редакторе и запускать файл?

Ну я не знаю откуда вы его вытащили, может это для Oracl?

Nicholass ★★★
()
Ответ на: комментарий от KRoN73

В настройках убирается. Как в конфиге, так и в новведении — персональных настройках.


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

vs240
()

хорошая тема, спасибо... а что лучше использовать, работу с Coocies или Session?

если вопрос не в тему извините))

IshpaneC
()
Ответ на: комментарий от vs240

>вопрос в том, что теперь постоянно надо править настройки

Зачем постоянно? Один раз в конфиге прописал и забыл.

Зачем было делать на пол экрана эти ссылки никому не нужные, чтобы все их в настройках убирали?


Ну, это уже другой вопрос. Наверное, чтобы все узнали, что они есть :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Nicklasos

>phpMyAdmin на продакшене? Наркоманы штоле?

А что не нравится? Я ещё ни с одним сервером не работал, как своих, так и арендуемых, где бы он бы не стоял :)

KRoN73 ★★★★★
()
Ответ на: комментарий от no-dashi

А запросик вот такого вида ... отлаживать «в консольке» не доводилось? :-)

Доводилось. Очень мне нравится psql удобством. В консоли mysql не совсем понимаю как остановить интерактивный поиск по истории, чтобы не оказаться на строке в середине истории, по ctrl-c вырубается весь клиент. psql в этом плане разумнее.

Casus ★★★★★
()
Ответ на: комментарий от no-dashi

«в консольке» такие запрсоы писать - проще застрелиться.

Ты говоришь про отладку или написание? Отлаживать в консольке такое нормально, а вот пишу я подобное в eclipse. У него есть sql-mode, но у меня базы нужной локально нет ;)

Casus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.