The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз системы мониторинга Cacti 0.8.7h с устранением уязвимости

27.09.2011 08:49

Спустя больше года с момента прошлого выпуска увидел свет релиз системы мониторинга Cacti 0.8.7h, отображающей изменения отслеживаемых параметров в виде наглядных графиков. В новой версии исправлено 63 ошибки, среди которых несколько уязвимостей: возможность подстановки SQL-кода через страницу входа в систему (login page) и ошибки, приводящие к размещению JavaScript-кода в контексте страниц Cacti (межсайтовый скриптинг).

Из изменений также можно отметить:

  • Несколько оптимизаций производительности в poller, направленных на увеличение скорости опроса параметров сервисов.
  • Изменен размер шрифта по умолчанию;
  • Переработан метод параллельного сбора данных на уровне устройств;
  • Возможность использования на графиках значений переменных |host_*|;
  • Поддержка анализа БД и вызова системных cli-скриптов;
  • Поддержка счетчиков запросов через скрипты;
  • Метод переиндексации "Index Count Changed" теперь применим к запросам через скрипты;
  • Возможность использования в заголовке графика входящих параметров скрипта.


  1. Главная ссылка к новости (http://www.cacti.net/release_n...)
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: monitoring, graph, cacti
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (6) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, anon8 (ok), 09:45, 27/09/2011 [ответить]  
  • –1 +/
    > возможность подстановки SQL-кода

    покажите уже кто-нибудь им PDO.

     
     
  • 2.2, anon9 (?), 10:54, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    prepared statements можно использовать и без PDO, если вы об этом. А вообще их спасёт только переписывание всей системы с нуля. Потому что тот код что там сейчас - это полнейшая джигурда
     
     
  • 3.4, name (??), 14:30, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    обоснуйте и покажите нормальный код.
    по моему мнению там отличный код.
     
     
  • 4.6, Аноним (-), 20:14, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да забейте, автор стертого всего лишь ярый адепт культа "вы тут все пи...сы, а я Д'Артаньян". Говорят это лечится только путем 5-ведерной клизмы с патефонными иголками.
     
  • 4.7, Клыкастый (ok), 22:52, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    1000 извинений, но sql инъекция с login page - это отличный код?
     
     
  • 5.8, superuser (?), 23:52, 27/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    пруф http://svn.cacti.net/viewvc/cacti/tags/0.8.7h/auth_login.php?revision=6814&vi
    http://svn.cacti.net/viewvc/cacti/tags/0.8.7h/auth_login.php?r1=6257&r2=6807&
    - $user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "' AND realm = 2");
    + $user = db_fetch_row("SELECT * FROM user_auth WHERE username = " . $cnn_id->qstr($username) . " AND realm = 2");

    странно, но перед этим делается
    $username = sanitize_search_string($username);
    которая в свою очередь

    /* sanitize_search_string - cleans up a search string submitted by the user to be passed
         to the database. NOTE: some of the code for this function came from the phpBB project.
       @arg $string - the original raw search string
       @returns - the sanitized search string */
    function sanitize_search_string($string) {
    static $drop_char_match =   array('^', '$', '<', '>', ''', '\'', '"', '|', ',', '?', '~', '+', '[', ']', '{', '}', '#', ';', '!', '=', '*');
    static $drop_char_replace = array(' ', ' ', ' ', ' ',  '',   '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');

    /* Replace line endings by a space */
    $string = preg_replace('/[\n\r]/is', ' ', $string);

    /* HTML entities like   */
    $string = preg_replace('/\b&[a-z]+;\b/', ' ', $string);

    /* Remove URL's */
    $string = preg_replace('/\b[a-z0-9]+:\/\/[a-z0-9\.\-]+(\/[a-z0-9\?\.%_\-\+=&\/]+)?/', ' ', $string);

    /* Filter out strange characters like ^, $, &, change "it's" to "its" */
    for($i = 0; $i < count($drop_char_match); $i++) {
    $string =  str_replace($drop_char_match[$i], $drop_char_replace[$i], $string);
    }

    return $string;
    }
    теперь пусть кто-нибудь сможет объяснить как сделать инъекцию

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру