Client Side Template Injection (CSTI)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Це схоже на Server Side Template Injection, але на клієнті. SSTI може дозволити вам виконати код на віддаленому сервері, CSTI може дозволити вам виконати довільний JavaScript код у браузері жертви.
Тестування на наявність цієї вразливості дуже схоже на випадок SSTI, інтерпретатор очікує шаблон і виконає його. Наприклад, з корисним навантаженням на кшталт {{ 7-7 }}
, якщо додаток вразливий, ви побачите 0
, а якщо ні, ви побачите оригінал: {{ 7-7 }}
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')>
, повинно працювати.
Ви можете знайти вразливу реалізацію 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
Кредит: Гарет Хейс, Льюїс Ардерн та PwnFunction
Credit: Mario Heiderich
Перевірте більше VUE payloads на https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Payload:
Більше пейлоадів у https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)