LINUX.ORG.RU
 
ins3y3d

Многочисленные критические уязвимости в 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-код при перезаписанных переменных сессии.

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

ПОСАДИ КОМПЬЮТЕР НА ЦЕПЬ И ЗАСТАВЬ ЛАЯТЬ!

домашняя автоматизация: сделай сам; лучший подарок для техногика

http://www.unicontrollers.com/products/unc01x

[#] Ответ на: комментарий от Nicholass 06.07.2011 21:50:05  
no-dashi

> 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
отлаживать "в консольке" не доводилось? :-)

***** ()
[#]  
desruptor

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

* ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 22:59:18  

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

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

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

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

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

anonymous ()
[#] Ответ на: комментарий от Fletch 06.07.2011 16:15:55  
leg0las

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

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

** ()
[#]  

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

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

_________

//wfrr

anonymous ()
[#] Ответ на: комментарий от yanka 06.07.2011 17:49:17  

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

_________

//wfrr

anonymous ()
[#]  
mmarkk

РЕШЕТО!

* ()
[#] Ответ на: комментарий от anonymous 06.07.2011 23:19:04  
no-dashi

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

Могу посоветовать хорошего офтальмолога :-)

***** ()
[#] Ответ на: комментарий от zloy_linuxoid 06.07.2011 18:57:53  
burjui

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

* ()
[#] Ответ на: комментарий от adepto 06.07.2011 17:38:52  
tazhate

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

***** ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 22:59:18  
Nicholass

а чем лучше такой запросик отлаживать в phpMyADMIN? Да и вообще, потянет ли MySQL такой запросик?

* ()
[#] Ответ на: комментарий от Nicholass 07.07.2011 1:59:46  
no-dashi

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

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

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

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

***** ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 22:59:18  

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

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 07.07.2011 7:12:22  

кроме того, можно использовать nano :)

$ nano -w mysqlscript.sql $ mysql -u %username% -p -D %basename% << mysqlscript.sql

anonymous ()
[#] Ответ на: комментарий от anonymous 07.07.2011 7:15:13  
no-dashi

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

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

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

***** ()
[#] Ответ на: комментарий от no-dashi 07.07.2011 7:25:28  

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

anonymous ()
[#] Ответ на: комментарий от no-dashi 07.07.2011 7:25:28  

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

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

anonymous ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 22:59:18  

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

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

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

anonymous ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 23:53:53  

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

**# ()
[#] Ответ на: комментарий от no-dashi 07.07.2011 6:32:42  
Nicholass

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

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

* ()
[#]  

Есть такая штучка, http://www.adminer.org/ Работает не только с MySQL. Всего-то один файлик. phpMyAdmin на продакшене? Наркоманы штоле?

()
[#] Ответ на: комментарий от KRoN73 06.07.2011 21:25:10  

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

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

* ()
[#]  

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

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

()
[#] Ответ на: комментарий от vs240 07.07.2011 19:19:53  
KRoN73

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

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

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


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

***** ()
[#] Ответ на: комментарий от Nicklasos 07.07.2011 17:06:35  
KRoN73

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

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

***** ()
[#] Ответ на: комментарий от no-dashi 06.07.2011 22:59:18  

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

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

***** ()
[#] Ответ на: комментарий от no-dashi 07.07.2011 7:25:28  

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

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

***** ()