Client Side Template Injection (CSTI)
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Verdiep jou kundigheid in Mobiele Sekuriteit met 8kSec Akademie. Beheers iOS en Android sekuriteit deur ons self-gebaseerde kursusse en kry gesertifiseer:
Dit is soos 'n Server Side Template Injection maar in die klant. Die SSTI kan jou toelaat om kode op die afstandsbediener uit te voer, die CSTI kan jou toelaat om arbitraire JavaScript kode in die slagoffer se blaaier uit te voer.
Toetsing vir hierdie kwesbaarheid is baie soortgelyk aan die geval van SSTI, die interpreter verwag 'n sjabloon en sal dit uitvoer. Byvoorbeeld, met 'n payload soos {{ 7-7 }}
, as die app kwesbaar is, sal jy 'n 0
sien, en as nie, sal jy die oorspronklike sien: {{ 7-7 }}
AngularJS is 'n wyd gebruikte JavaScript-raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as direkte, 'n noemenswaardige een is ng-app
. Hierdie direkte laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak.
In scenario's waar gebruikersinvoer dinamies in die HTML-lichaam ingevoeg word wat met ng-app
gemerk is, is dit moontlik om arbitraire JavaScript-kode uit te voer. Dit kan bereik word deur die sintaksis van AngularJS binne die invoer te benut. Hieronder is voorbeelde wat demonstreer hoe JavaScript-kode uitgevoer kan word:
You can find a very basic online example of the vulnerability in AngularJS in http://jsfiddle.net/2zs2yv7o/ and in Burp Suite Academy
Angular 1.6 het die sandbox verwyder so vanaf hierdie weergawe behoort 'n payload soos {{constructor.constructor('alert(1)')()}}
of <input ng-focus=$event.view.alert('XSS')>
te werk.
You can find a vulnerable Vue implementation in https://vue-client-side-template-injection-example.azu.now.sh/
Working payload: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
And the source code of the vulnerable example here: https://github.com/azu/vue-client-side-template-injection-example
'n Regtig goeie pos oor CSTI in VUE kan gevind word in https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
Credit: Gareth Heyes, Lewis Ardern & PwnFunction
Credit: Mario Heiderich
Kyk meer VUE payloads in https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Payload:
Meer payloads in https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Verdiep jou kundigheid in Mobiele Sekuriteit met 8kSec Akademie. Meester iOS en Android sekuriteit deur ons self-gebaseerde kursusse en kry gesertifiseer:
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)