Client Side Template Injection (CSTI)
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Mobil Güvenlik konusundaki uzmanlığınızı 8kSec Akademisi ile derinleştirin. Kendi hızınıza göre kurslarımızla iOS ve Android güvenliğini öğrenin ve sertifika alın:
Bu, Sunucu Tarafı Şablon Enjeksiyonu (SSTI) gibidir ama istemci tarafında. SSTI, uzaktaki sunucuda kod çalıştırmanıza izin verebilir, CSTI ise kurbanın tarayıcısında rastgele JavaScript kodu çalıştırmanıza izin verebilir.
Bu zafiyeti test etmek, SSTI durumundaki gibi çok benzer bir şekilde yapılır, yorumlayıcı bir şablon bekler ve bunu çalıştırır. Örneğin, {{ 7-7 }}
gibi bir yük ile, uygulama zayıfsa 0
göreceksiniz, değilse orijinalini göreceksiniz: {{ 7-7 }}
AngularJS, HTML ile direktif olarak bilinen öznitelikler aracılığıyla etkileşimde bulunan yaygın olarak kullanılan bir JavaScript framework'üdür, bunlardan biri ng-app
'dir. Bu direktif, AngularJS'nin HTML içeriğini işlemesine olanak tanır ve çift süslü parantezler içinde JavaScript ifadelerinin çalıştırılmasını sağlar.
Kullanıcı girdisinin ng-app
ile etiketlenmiş HTML gövdesine dinamik olarak eklendiği senaryolarda, rastgele JavaScript kodu çalıştırmak mümkündür. Bu, girdide AngularJS'nin sözdizimini kullanarak gerçekleştirilebilir. Aşağıda JavaScript kodunun nasıl çalıştırılabileceğini gösteren örnekler bulunmaktadır:
Bir temel çevrimiçi örneği bu zafiyetin AngularJS'de http://jsfiddle.net/2zs2yv7o/ ve Burp Suite Academy adresinde bulabilirsiniz.
Angular 1.6 kum havuzunu kaldırdı bu yüzden bu versiyondan itibaren {{constructor.constructor('alert(1)')()}}
veya <input ng-focus=$event.view.alert('XSS')>
gibi bir yük çalışmalıdır.
Zayıf bir Vue uygulamasını https://vue-client-side-template-injection-example.azu.now.sh/ adresinde bulabilirsiniz.
Çalışan yük: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
Ve zayıf örneğin kaynak kodu burada: https://github.com/azu/vue-client-side-template-injection-example
Gerçekten iyi bir CSTI yazısı VUE hakkında https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets adresinde bulunabilir.
Kredi: Gareth Heyes, Lewis Ardern & PwnFunction
Kredi: Mario Heiderich
Daha fazla VUE yükü kontrol edin https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Yük:
Daha fazla payload için https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Mobil Güvenlik konusundaki uzmanlığınızı 8kSec Akademisi ile derinleştirin. Kendi hızınıza göre kurslarımızla iOS ve Android güvenliğini öğrenin ve sertifika kazanın:
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)