Мы уже рассматривали атаки с использованием XSLT, но все равно стоит напомнить, что это за технология. Она позволяет с помощью XSL-стиля поменять структуру XML. Но для нас XSLT интересен тем, что позволяет напрямую писать код в стилях XSL, и этот код будет выполняться в процессе преобразования. В классическом случае проблема такой атаки в том, что чаще всего мы контролируем только сам XML-документ, но не XSL-стиль, по которому он будет преобразован. Однако на самом деле это не всегда так.
Есть ряд ситуаций, когда XSL-стиль может находиться прямо внутри самого XML. Да-да, в документе указывается описание того, как его необходимо преобразовать. Делается это за счет добавления в документ еще одного namespace (xmlns:xsl=http://www.w3.org/1999/XSL/Transform
). Предостерегаю тебя от того, чтобы пихать XSLT-вектор в каждый XML по аналогии c XXE. Поддержка XSLT на принимающей стороне (в XML-парсере) не появляется просто так.
Увидеть, есть ли в браузере поддержка XSL внутри документов XML, мы можем при обработке файлов SVG, а также при использовании «глубоких» XML-технологий — таких как XML Digital Signature.
XML DSig используется для подписи XML-документов. Этот стандарт позволяет указывать XSLT-преобразования для документа до того, как будет проверена подпись. По идее, это было сделано для более гибкого взаимодействия. Когда есть разница между тем, как подпись считается на принимающей и на отправляющей стороне (разные кодировки, учет переносов и лишних пробелов — проблем возникает много), с помощью XSL-стиля можно компенсировать эту разницу. Для описания преобразования используется элемент Transform (в Transforms). Пример ты можешь увидеть на картинке.
Получается, что у нас есть технология, которая из коробки поддерживает XSLT-трансформацию. Если видишь какой-то сервис, использующий XML DSig, значит, можешь попробовать заслать на него что-нибудь хорошее. При этом помни, что твой документ должен быть валидным и все элементы подписи тоже должны присутствовать. Сама она может и не быть валидной, но она нужна, чтобы пройти первичный парсинг на корректность документа. А далее выполнятся наши действия из стиля, и только после этого произойдет проверка подписи.
Если вспомнить, где XML DSig используется постоянно, то на ум приходит Security Assertion Markup Language (SAML). Это такой открытый стандарт на базе XML, который используется для создания централизованной аутентификации и авторизации. Сам по себе он непрост, так что подробно разбирать его не будем. Важно, что он часто используется в крупных компаниях.
Что мы имеем в итоге? Есть протокол аутентификации SAML, в котором используется технология XML DSig, которая, в свою очередь, поддерживает XSLT-трансформацию. Эта длинная цепочка дает нам возможность до аутентификации получить RCE. Очень удобно! Конечно, в реальности все не всегда так просто: если разработчики или админы в курсе проблемы, то кастомные стили для XML DSig могут быть и отключены.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…