AIKraft/Skills/xslt-injection

xslt-injection

Тестирование XSLT-инъекций: определение процессора, XXE, SSRF через document(), запись файлов через EXSLT и RCE через расширения PHP/Java/.NET. Применяется, когда в зоне тестирования есть пользовательский ввод XSLT или эндпоинты трансформации.

yaklang official Другое ★ 2.4k

Что делает навык

Навык предназначен для тестирования уязвимостей XSLT-инъекций, возникающих при компиляции и выполнении сервером XSLT, влияемого пользователем. Он позволяет определить тип процессора (Java, .NET, PHP, libxslt) и использовать специфичные для него механизмы, такие как document(), внешние сущности, EXSLT или встроенные скрипты, для эскалации до XXE, SSRF, записи файлов или RCE.

Когда применять

  • Тестирование параметров, связанных с трансформацией XML, таких как xslt, stylesheet, transform, template, SOAP-стилей или генераторов отчетов.
  • Определение семейства процессора XSLT на стороне сервера для выбора правильной цепочки эксплуатации.
  • Использование функции document() для извлечения локальных файлов или инициирования SSRF.
  • Применение EXSLT для записи файлов на сервер.
  • Эскалация до выполнения кода (RCE) через расширения PHP, Java или .NET.

Как работает

  1. Найти потенциальные точки входа (sinks), такие как параметры xslt, stylesheet, transform, template, SOAP-стили или конвертеры XML в HTML.
  2. Провести проверку отражения, внедрив уникальный namespace или xsl:value-of select="'marker'", чтобы подтвердить выполнение XSLT.
  3. Определить семейство процессора XSLT (Java, .NET, PHP или libxslt) для выбора дальнейших векторов атаки.
  4. Эскалировать уязвимость в зависимости от процессора: использовать document() для XXE/SSRF, EXSLT для записи файлов или встроенные функции для RCE.
  5. При необходимости перекрестно загрузить навыки xxe-xml-external-entity или ssrf-server-side-request-forgery, если ввод обрабатывается как generic XML или требуется анализ исходящих запросов.

Примеры запросов агенту

Проведи тестирование XSLT-инъекции на эндпоинте, принимающем параметр stylesheet.
Определи тип процессора XSLT на сервере и попробуй прочитать локальный файл через функцию document().
Проверь возможность записи файла на сервер с помощью EXSLT, если целевой процессор поддерживает этот стандарт.

Описание составлено по SKILL.md навыка, сверено 07.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «xslt-injection» из репозитория: # https://github.com/yaklang/hack-skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r xslt-injection/ ~/.claude/skills/xslt-injection/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.