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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-60137 — wpsqli — полный экстрактор и дампер SQL-инъекций для CVE-2026-60137 | Kitploit
Инструменты/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Атаки на ПаролиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВеб-безопасностьТестирование на ПроникновениеБезопасность Баз Данных

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
adarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli — полный экстрактор и дампер SQL-инъекций для CVE-2026-60137

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

wpsqli — экстрактор SQL-инъекций для WordPress (CVE-2026-60137)

Быстрый инструмент извлечения данных из базы с меню-интерфейсом, эксплуатирующий уязвимость SQL-инъекции author__not_in в ядре WordPress. Инструмент сфокусирован исключительно на перечислении и дампе базы данных, используя путаницу маршрутов REST batch-эндпоинта (CVE-2026-63030) для достижения SQLi-приёмника без аутентификации.


Содержание

  • Обзор
  • Цепочка уязвимостей
  • Затронутые версии
  • Возможности
  • Установка
  • Использование
  • Пункты меню
  • Режимы извлечения
  • Производительность
  • Правовое предупреждение

Обзор

wpsqli — это инструмент на чистом Python, предназначенный для эксплуатации цепочки уязвимостей в ядре WordPress, позволяющей выполнять неаутентифицированную SQL-инъекцию в базу данных. Он обходит проверки WordPress REST API через баг путаницы batch-маршрутов, доставляя сырую строковую нагрузку напрямую в SQL-приёмник WP_Query.

Инструмент создан для скорости и гибкости: он автоматически пытается выполнить UNION-based in-band извлечение (мгновенно), при неудаче переключается на параллельное boolean-blind извлечение в 8 потоков и, наконец, на последовательное time-based извлечение, если это необходимо.


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

Инструмент связывает две независимые уязвимости для достижения неаутентифицированного извлечения данных:

Баг A — SQL-инъекция author__not_in (CVE-2026-60137)

Расположение: wp-includes/class-wp-query.php, WP_Query::get_posts()

Параметр author__not_in применяет санитизацию absint() только в том случае, если входные данные являются массивом. Если передана строка, проверка is_array() пропускается, строка проходит через implode() без изменений и конкатенируется как есть в SQL-условие $where.

root@kitploit:~
// Строка 2404: защита срабатывает только для МАССИВОВ
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Строка 2408: строка проходит напрямую
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Строка 2409: сырая интерполяция
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Баг B — Путаница REST batch-маршрутов (CVE-2026-63030)

Эндпоинт REST API для записей сопоставляет author_exclude с author__not_in, но объявляет его как type => 'array' целых чисел, поэтому ядро приводит/отклоняет строку. Баг B протаскивает строку мимо проверки, используя баг рассинхронизации в REST batch-эндпоинте (/wp-json/batch/v1). Путём внедрения повреждённого path-праймера, который отклоняет wp_parse_url(), в список batch-запросов внедряется WP_Error, что рассинхронизирует $matches с $validation. Это позволяет следующему подзапросу быть отправленным под неправильным обработчиком без проверки параметров.


Затронутые версии

Предупреждение: SQLi-приёмник достижим только при условии, что постоянный объектный кеш (Redis/Memcached) НЕ используется.


Возможности

  • Без зависимостей: Чистая стандартная библиотека Python. pip install не требуется.
  • Трёхуровневое извлечение:
    • UNION-based: Формирует поддельную строку wp_posts для извлечения целых строк за один HTTP-запрос (мгновенно).
    • Boolean-blind (параллельно): Если UNION заблокирован объектным кешированием, использует 8 параллельных потоков с бинарным поиском для извлечения ~7 запросов на символ.
    • Time-based (последовательно): Запасной вариант, если boolean-оракул не возвращает строк.
  • Полное перечисление: Вывод списка баз данных, таблиц и колонок.
  • Дамп таблиц: Дамп отдельных таблиц, всех таблиц в БД или полный «ядерный» дамп в текстовый файл с меткой времени.
  • Корректное прерывание: Ctrl+C во время извлечения останавливает текущий запрос и возвращает частичные результаты без завершения сеанса.
  • Постоянство сеанса: Подключитесь один раз и выполняйте несколько запросов через интерактивное меню.
  • Санитизация URL: Автоматически удаляет пути/запросы из введённого хоста, чтобы предотвратить дублирование эндпоинтов.
  • Вывод, готовый к взлому: Дампы пользователей включают формат ID|user_login|user_pass с bcrypt-хешами, готовыми для hashcat -m 35500.

Установка

Установка не требуется. Просто скачайте и запустите:

root@kitploit:~
# Клонируем репозиторий
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Переходим в директорию
cd CVE-2026-60137

# Запускаем
python main.py

Требования:

  • Python 3.8+
  • Внешние пакеты не требуются (только стандартная библиотека)

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

Запустите интерактивное меню:

root@kitploit:~
python main.py

Пример сеанса

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  ПОДКЛЮЧЕНИЕ
   0. Подключиться / Сменить цель
   1. Проверить цель (версия + подтверждение уязвимости)
------------------------------------------------------------
  СБОР ОТПЕЧАТКОВ
   2. Версия MySQL (@@version)
   3. Имя текущей базы данных
   4. Текущий пользователь БД
   5. Префикс таблиц WordPress
   6. Дамп wp_users (ID, логин, хеш пароля)
   7. Пользовательский SQL-запрос
   8. Извлечь все отпечатки (2+3+4+5)
------------------------------------------------------------
  ПЕРЕЧИСЛЕНИЕ
   9. Список всех баз данных
  10. Список всех таблиц (текущая БД)
  11. Список колонок таблицы
------------------------------------------------------------
  ДАМП
  12. Дамп конкретной таблицы
  13. Дамп всех таблиц (текущая БД)
  14. Полный дамп в файл (все таблицы + все строки)
------------------------------------------------------------
  15. Выход
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

Пункты меню

Подключение

ОпцияОписание
0Подключение к цели (URL автоматически санитизируется)
1Проверка уязвимости и активного режима извлечения

Сбор отпечатков

Перечисление

ОпцияОписание
9Список всех баз данных на MySQL-сервере
10Список всех таблиц в текущей или указанной базе данных
11Список всех имён колонок для конкретной таблицы

Дамп

ОпцияОписание
12Дамп одной таблицы (с опциональным лимитом строк и сохранением в файл)
13Дамп всех таблиц в текущей базе данных
14Полный «ядерный» дамп — все таблицы + все строки в файл с меткой времени

Режимы извлечения

Инструмент автоматически пробует три режима извлечения в порядке убывания скорости:

1. UNION-Based (мгновенно)

Формирует поддельную строку wp_posts с извлечённым значением, закодированным в hex в колонке post_title (обёрнутым в маркеры ||..||). REST API отражает её в ответе — вся строка за один HTTP-запрос.

  • 1 запрос на запрос к БД
  • Работает только при отсутствии активного постоянного объектного кеша
  • Использует CONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c) для кодирования результата

2. Boolean-Blind (параллельно)

Если UNION недоступен, использует 8 параллельных потоков с бинарным поиском для извлечения каждого символа. Boolean-оракул проверяет, возвращает ли внедрённое AND (condition) строки.

  • ~7 запросов на символ (распараллелено на 8 потоков)
  • Бинарный поиск по диапазону ASCII 32-126
  • Предварительное сканирование длины строки бинарным поиском перед извлечением
  • Прогресс отображается как количество завершённых символов

3. Time-Based (последовательно)

Запасной вариант, если boolean-оракул не возвращает строк (например, сайт с 0 опубликованных записей). Использует IF(condition, SLEEP(N), 0) для кодирования истины в задержке ответа.

  • ~7 × sleep_delay секунд на символ (последовательно)
  • Самый медленный режим, но работает на пустых базах данных

Производительность

Примеры замеров времени (Boolean, 8 потоков)


Правовое предупреждение

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

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


Благодарности

  • Цепочка уязвимостей обнаружена Adam Kues (Assetnote / Searchlight Cyber)
  • Техника UNION поддельной записи: sergiointel/wp2shell-poc (первоисточник)
  • Реализация адаптирована из: Icex0/wp2shell-poc
  • Техника обнаружения путаницы маршрутов: Hadrian / Icex0

Лицензия

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

Скачать инструмент
Диапазон версийСтатус
6.8.0 – 6.8.5Баг SQLi присутствует, но цепочка НЕ достижима (batch-путаница появилась в 6.9.0)
6.9.0 – 6.9.4УЯЗВИМО — полная цепочка без аутентификации
7.0.0 – 7.0.1УЯЗВИМО — полная цепочка без аутентификации
6.8.6Исправлено (SQLi)
6.9.5Исправлено
7.0.2Исправлено
7.1-beta2+Исправлено
ОпцияОписание
2Извлечение версии MySQL (SELECT @@version)
3Извлечение имени текущей базы данных (SELECT DATABASE())
4Извлечение текущего пользователя БД (SELECT CURRENT_USER())
5Извлечение префикса таблиц WordPress
6Дамп таблицы wp_users (ID, логин, хеш пароля)
7Выполнение пользовательского SQL-запроса
8Выполнение всех отпечатков (опции 2-5) по порядку
РежимЗапросов на запрос к БДСкоростьКогда используется
UNION1МгновенноНет объектного кеша, количество колонок совпадает
Boolean (8 потоков)~7 × длина_строки / 8БыстроUNION заблокирован, есть строки
Time-based~7 × sleep × длина_строкиМедленноНет строк для boolean-оракула
ИзвлечениеСимволовЗапросовВремя
Версия MySQL~20~140~15с
Имя базы данных~15~105~12с
Пользователь БД~25~175~20с
Префикс таблиц~5~35~5с
Строка wp_users (200 символов)200~1400~2 мин