#41 Bug Bounty v.2 — Еще про OWASP. Server Side Template Injection (SSTI)
Здравствуйте, дорогие друзья.
В начале цикла статей мы обсуждали некоторые основные уязвимости OWASP. Как я уже говорил ранее, подавляющее большинство ваших целевых внешних ресурсов, с которыми вы сталкиваетесь, будут веб-приложениями. Поэтому было бы разумно, если бы вы изучили все, что нужно знать о тестировании веб-приложений, поскольку вам предстоит делать это часто. Как уже говорилось, давайте добавим еще несколько уязвимостей веб-приложений к вашему арсеналу методов.
Server Side Template Injection (SSTI)
Вступление
Чтобы понять, как внедрять шаблоны на стороне сервера, вы должны понимать шаблоны, а чтобы понять шаблоны, вы должны понимать шаблон проектирования model–view–controller. Model-view-controller — это шаблон, который в основном используется для разработки пользовательских интерфейсов.
Как вы можете видеть выше, пользователь инициирует запрос к контроллеру. Затем контроллер использует модель для сбора информации из внутренней базы данных, затем эта информация передается обратно контроллеру. Затем контроллер передает информацию в представление, где он использует данные для обновления значений в представлении. Обновленное представление передается
обратно в контроллер, где оно затем отправляется пользователю и отображается в браузере. Представление используется для манипулирования HTML-кодом и обычно реализуется с помощью шаблонов. Шаблоны позволяют вам использовать заполнители в вашем HTML-коде, где вы можете может передаваться в переменных, как показано ниже:
Как вы можете видеть, в четвертой строке есть тег title, содержащий выражение “{{Title}}”. Эта строка будет заменена любым аргументом, который будет передан в механизм разработки шаблонов. Это позволяет разработчикам легко повторно использовать свой код.
Модуль обработки шаблонов позволяет использовать статические файлы шаблонов в вашем приложении. Во время выполнения модуль обработки шаблонов заменяет переменные в файле шаблона фактическими значениями и преобразует шаблон в HTML-файл, отправляемый клиенту. Возможно, вы думаете, зачем использовать шаблонизатор для изменения HTML-документа, если простая строка формата оператор будет работать. Причина в том, что шаблонизаторы намного мощнее, чем простой оператор форматной строки. Шаблонизаторы могут выполнять всевозможные действия, такие как вызов функций и методов, циклическое обращение с переменными, арифметические действия и многое другое. Как вы узнаете из следующего раздела, хакеры могут использовать движки шаблонов для совершения всевозможных неприятных действий. Внедрение шаблонов на стороне сервера может использоваться для XSS, раскрытия конфиденциальной информации и даже выполнения кода.
На этом все. Всем хорошего дня!