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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-27886-check — Определить, уязвим ли экземпляр Strapi к CVE-2026-27886 (неаутентифицированная эксфильтрация секретов администратора с помощью boolean-oracle). | Kitploit
Инструменты/GitHubGitHub/bishopfox/cve-2026-27886-check
РазведкаАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на Проникновение
GitHubbishopfox/cve-2026-27886-check

CVE-2026-27886-check

Определить, уязвим ли экземпляр Strapi к CVE-2026-27886 (неаутентифицированная эксфильтрация секретов администратора с помощью boolean-oracle).

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
11104 месяцев назадЕщё не проверено

CVE-2026-27886 Инструмент оценки уязвимости

Безопасно определяет, уязвим ли экземпляр Strapi к CVE-2026-27886, не выполняя полную цепочку захвата учетной записи. См. полное описание в блоге Bishop Fox.

Описание

CVE-2026-27886 — это неаутентифицированный обход санитизации параметров в Strapi версий 4.0.0–5.36.1, который позволяет удаленным неаутентифицированным злоумышленникам утекать секреты администратора через публичный Content API. Санитайзер запросов фреймворка в @strapi/utils обрабатывает только документированные ключи запросов filters, sort, fields и populate, а все остальные ключи верхнего уровня в запросе молча сохраняет. Затем неизвестные ключи передаются через transformQueryParams и попадают в strapi.db.query(...) как SQL-выражение WHERE. Путем перебора where[updatedBy][resetPasswordToken][$startsWith]=<prefix> в любой публичной коллекции Content API злоумышленник может утекать секреты администратора по одному символу через поле meta.pagination.total в ответе.

Этот инструмент выполняет неразрушающее тестирование уязвимости, путем:

  1. Отправка базового запроса GET /api/<collection>
  2. Отправка того же GET с добавлением ?where[id][$lt]=-1
  3. Сравнение двух значений meta.pagination.total для определения, достигло ли условие where уровня базы данных

Предикат where[id][$lt]=-1 не может соответствовать ни одной реальной строке, поэтому, когда условие учитывается на уровне базы данных, ответ сокращается до нуля строк. Когда патч установлен, неизвестный ключ where отбрасывается белым списком санитайзера до построения запроса, и ответ идентичен базовому. Зонд никогда не затрагивает приватные столбцы администратора и не изменяет данные.

  • Уязвимые серверы возвращают разные значения количества: базовый запрос возвращает хотя бы одну строку, а запрос с предикатом — ноль, поскольку условие where было учтено на уровне базы данных.
  • Запатченные серверы (Strapi 5.37.0 или новее) возвращают одинаковые значения количества для обоих запросов, так как sanitizeQuery удаляет любые нераспознанные ключи верхнего уровня до их попадания в базу данных.
  • Серверы не на Strapi, недоступные конечные точки или пустые коллекции сообщат результат INCONCLUSIVE.

На уязвимом сервере инструмент затем перечисляет адрес электронной почты администратора посимвольно через where[updatedBy][email][$startsWith]=<prefix>. Он не выполняет захват учетной записи администратора.

Установка

git clone https://github.com/BishopFox/CVE-2026-27886-check
cd CVE-2026-27886-check

Внешние зависимости не требуются. Сканер использует только модули стандартной библиотеки Python.

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

Протестируйте конечную точку публичной коллекции Content API сервера Strapi. Strapi сопоставляет pluralName типа контента с путём URL, поэтому точное имя различается в зависимости от развертывания.

python3 CVE-2026-27886-check.py <ENDPOINT>

Пример: уязвимый сервер

$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential confirmed: baseline total=1, where-test total=0 -> VULNERABLE
[+] Enumerating admin email
    admin email = [email protected]
[+] Done. To remediate, upgrade to Strapi 5.37.0 or later.

Пример: запатченный сервер

$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential check: baseline total=1, where-test total=1 -> NOT VULNERABLE

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

Инструмент может обнаружить уязвимость только при выполнении следующих условий:

  • Цель работает на Strapi 4.0.0–5.36.1
  • Публичной роли предоставлено право find хотя бы для одного типа контента
  • Хотя бы одна строка в этом типе контента имеет не-NULL updated_by_id
  • URL целевой коллекции доступен

Если какое-либо условие не выполнено, инструмент сообщит результат INCONCLUSIVE.

Лицензия

Этот код распространяется под лицензией MIT.

Юридическое предупреждение

Использование этого инструмента для атак на цели без предварительного взаимного согласия незаконно. Конечный пользователь обязан соблюдать все применимые местные, государственные и федеральные законы. Разработчики не несут ответственности и не отвечают за любое неправомерное использование или ущерб, причиненный этой программой.

См. также

  • Консультация по безопасности Strapi GHSA-rjg2-95x7-8qmx
  • Блог Bishop Fox: Полный технический анализ
  • NVD — CVE-2026-27886
Скачать инструмент