Client Side Template Injection (CSTI)
Summary
Це схоже на Внедрення шаблону на стороні сервера, але на клієнті. SSTI може дозволити вам виконувати код на віддаленому сервері, а CSTI може дозволити вам виконувати довільний код JavaScript в браузері жертви.
Тестування цієї уразливості дуже схоже на випадок SSTI, інтерпретатор очікує шаблон і виконає його. Наприклад, з навантаженням типу {{ 7-7 }}
, якщо додаток уразливий, ви побачите 0
, а якщо ні, ви побачите оригінал: {{ 7-7 }}
AngularJS
AngularJS - це широко використовуваний JavaScript фреймворк, який взаємодіє з HTML через атрибути, відомі як директиви, одна з найвідоміших - ng-app
. Ця директива дозволяє AngularJS обробляти вміст HTML, дозволяючи виконувати вирази JavaScript всередині подвійних фігурних дужок.
У випадках, коли введення користувача динамічно вставляється в тіло HTML з тегом ng-app
, можливо виконати довільний код JavaScript. Це можна зробити, використовуючи синтаксис AngularJS всередині введення. Нижче наведено приклади, що демонструють, як можна виконати код JavaScript:
Ви можете знайти дуже базовий онлайн приклад уразливості в AngularJS на http://jsfiddle.net/2zs2yv7o/ та на Burp Suite Academy
Angular 1.6 видалив пісочницю тому з цієї версії пейлоади типу {{constructor.constructor('alert(1)')()}}
або <input ng-focus=$event.view.alert('XSS')>
мають працювати.
VueJS
Ви можете знайти уразливу реалізацію Vue за посиланням https://vue-client-side-template-injection-example.azu.now.sh/
Працюючий пейлоад: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
А також вихідний код уразливого прикладу тут: https://github.com/azu/vue-client-side-template-injection-example
Дуже цікавий пост про CSTI в VUE можна знайти за посиланням https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
V3
Кредит: Гарет Хейс, Льюїс Ардерн та PwnFunction
V2
Кредит: Mario Heiderich
Перевірте більше навантажень VUE за посиланням https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Mavo
Навантаження:
Більше полезних вразливостей в https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Список виявлення перебору
Last updated