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

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

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

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

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

Категории

Все категории
Loading categories
Research_Successful_Errors — Whitepaper, описывающий техники Error-Based и Boolean Error-Based Blind для SSTI и инъекций кода, с универсальными пейлоадами для шести языков программирования и интеграцией в SSTImap. | Kitploit
Инструменты/GitHubGitHub/vladko312/research_successful_errors
Анализ уязвимостейАнализ КодаЭксплуатация веб-приложенийФаззингCTFТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubvladko312/research_successful_errors

Research_Successful_Errors

Whitepaper, описывающий техники Error-Based и Boolean Error-Based Blind для SSTI и инъекций кода, с универсальными пейлоадами для шести языков программирования и интеграцией в SSTImap.

Репозиторий
12113137 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Успешные ошибки: новые техники инъекции кода и SSTI

Report version Last modified

[!NOTE] Это вторая версия технического отчета, основанная на результатах, которые я представил перед выпуском SSTImap версии 1.3.1. Дальнейшие улучшения будут адаптированы для этого формата как версия 1.2 исследования позднее.

  • Полезные нагрузки
  • Версия для печати
  • Слайды

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

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

В этом исследовании представлены две такие техники для инъекции кода и SSTI: Error-Based (основанная на ошибках) и Boolean Error-Based Blind (слепая на основе логических ошибок). Я предоставлю полезные нагрузки для инъекции кода и SSTI на шести языках программирования: Python, PHP, Java, Ruby, NodeJS и Elixir. Кроме того, я предоставлю универсальные детектирующие полезные нагрузки, способные быстро обнаруживать даже слепые инъекции.

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

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

Содержание

  • Введение
  • Отправные точки
    • Dust.JS
    • Twig (CVE-2022-23614)
    • JSONPath Plus (CVE-2025-1302)
    • expr-eval (CVE-2025-13204)
  • Error-Based SSTI
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Универсальное обнаружение
    • Разработка полезных нагрузок
  • Boolean Error-Based Blind SSTI
    • Обнаружение ошибок
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Универсальное обнаружение
    • Разработка полезных нагрузок
  • Практическое применение
    • expr-eval (CVE-2025-13204)
    • JSONPath Plus (CVE-2025-1302)
    • Twig (CVE-2022-23614)
    • Dust.JS
  • Выводы
  • Ссылки

Введение

Уязвимости серверной инъекции шаблонов появляются на динамических веб-сайтах, использующих шаблонизаторы для серверного рендеринга, когда недоверенный пользовательский ввод вставляется в шаблон до его обработки шаблонизатором. Злоумышленник может вставить корректный синтаксис шаблона, который будет обработан шаблонизатором во время рендеринга страницы. Многие шаблонизаторы предоставляют ту или иную функциональность выполнения кода, что часто приводит к удаленному выполнению кода (RCE) на целевом сервере. Это исследование сосредоточено на шаблонизаторах, предоставляющих такие возможности в случае эксплуатации.

Уязвимости SSTI известны с 2015 года, и за это время было обнаружено множество полезных нагрузок, обеспечивающих эксфильтрацию информации, обход фильтров и побег из песочницы. Несмотря на это, большинство полезных нагрузок либо выводят результат непосредственно на страницу, либо сосредоточены на самом факте выполнения кода, отбрасывая результаты, выдаваемые этим кодом.

Процесс инъекции с отображением результата

Ещё одна хорошо известная техника SSTI — Time-Based Blind (слепая на основе времени), которая предполагает добавление задержки к выполняемой shell-команде. Эта техника позволяет определить успешность выполнения внедренного кода, но требует подбора полезной нагрузки для выполнения команд ОС, что затрудняет обнаружение слепой SSTI в неизвестном исследователю шаблонизаторе.

Процесс слепой инъекции на основе времени

Класс уязвимостей SSTI и обе известные техники эксплуатации были обнаружены в 2015 году Джеймсом Кеттлом. Эти техники подробно описаны в его исследовании «Server-Side Template Injection: RCE For The Modern Web App». [^1] За десять лет с тех пор не было задокументировано ни одной новой техники эксплуатации. В 2023 году была обнаружена только одна техника обнаружения, использующая полиглотные полезные нагрузки для одновременного тестирования нескольких шаблонизаторов. Эта техника была обнаружена Максимилианом Хильдебрандом и описана в его исследовании «Improving the Detection and Identification of Template Engines for Large-Scale Template Injection Scanning». [^2] Техника направлена на определение шаблонизаторов с использованием минимального количества запросов, но работает только для простых контекстов инъекций.

Процесс обнаружения на основе полиглотов

Большинство шаблонизаторов, основанных на интерпретируемых языках программирования, таких как PHP, NodeJS и Python, напрямую позволяют вычислять выражения соответствующих языков программирования. Эта возможность позволяет использовать полезные нагрузки для более широкой категории уязвимостей — инъекции кода, — обернув их в правильный формат тега шаблона.

Инъекция кода может возникать и без SSTI, когда недоверенный пользовательский ввод может попасть в eval() или аналогичную опасную функцию. Часто считается, что эксплуатация инъекции кода — это просто программирование на соответствующем языке, поэтому техники и полезные нагрузки документируются только для конкретных примеров уязвимостей, требующих адаптации кода под целевое приложение.

Отсутствие более универсальных техник обнаружения инъекций кода и SSTI приводит к неэффективности сканирования «черным ящиком» слепых инъекций кода и шаблонов.

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