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)
Deepen your expertise in Mobile Security with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
Це схоже на 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 пейлоадів у https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Payload:
Більше пейлоадів у https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Поглибте свої знання в Mobile Security з 8kSec Academy. Опануйте безпеку iOS та Android через наші курси з самостійним навчанням та отримайте сертифікат:
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)