<pclass="simpletext"style="text-align: left"><ahref="https://portswigger.net/web-security/server-side-template-injection"class="hltext">SSTI (Server-side template injection)</a> - уязвимость, позволяющая внедрить код в шаблон, выполнив его на стороне сервера.</p>
<pclass="simpletext"style="text-align: left">Как это работает? Если пользователь ввёдет где-либо на сайте не просто текст, а команду, вставляемую в шаблонизатор, то сервер может выполнить её и вернуть пользователю результат, если не стоит должных защит. Примерно так это выглядит на сервере:<spanclass="context"style="font-size: 0.9rem">(пример кода ниже)</span></p>
# В HTML комментарий вставляется через вызов переменной: {% raw %} <p> {{ comment }} </p> {% endraw %}</code></pre>
<pclass="simpletext"style="text-align: left">Можно заметить, что {% raw %} {{ }} {% endraw %} передают переменную. Т.е пользователь может просто написать команду такого же вида в поле ввода и она будет выполнена. </p>
<pclass="simpletext"style="text-align: left">В нашем случае можем ввести в комментарии:</p>
<pre><codeclass="codefont python">{% raw %} {{ flag }} {% endraw %}</code></pre>
<pclass="simpletext"style="text-align: left">На доске же вместо нашего "комментария" отобразится введённая переменная, т.е флаг</p>
<pclass="simpletext"style="text-align: left">Однако можно в {% raw %} {{ }} {% endraw %} вписать любую команду и она будет выполнена с одним "но": Современные шаблонизаторы неохотно обрабатывают в принципе всё, что в них суют и даже здесь уязвимость создана искусственно</p>
<pclass="simpletext">Приветствую тебя, о сетевой путник! <br/>
Прошу, оставь упоминание осебе здесь! Тут допускается всё: ничего страшного если твой комментарий будет <abbrclass="hltext"title="Смотри подсказку(кнопка снизу слева)">немного странным</abbr></p>