Translated ['src/pentesting-web/websocket-attacks.md'] to tr

This commit is contained in:
Translator 2025-03-09 14:30:26 +00:00
parent ea3a5b75e5
commit 1ba0c9d82b

View File

@ -4,7 +4,7 @@
## WebSocket Nedir
WebSocket bağlantıları, başlangıçta bir **HTTP** el sıkışması ile kurulur ve **uzun ömürlü** olacak şekilde tasarlanmıştır; bu, herhangi bir zamanda iki yönlü mesajlaşmaya olanak tanır ve bir işlem sistemine ihtiyaç duymaz. Bu, WebSocket'leri, canlı finansal veri akışları gibi **düşük gecikme veya sunucu başlatmalı iletişim** gerektiren uygulamalar için özellikle avantajlı hale getirir.
WebSocket bağlantıları, başlangıçta bir **HTTP** el sıkışması ile kurulur ve **uzun ömürlü** olacak şekilde tasarlanmıştır; bu, herhangi bir zamanda iki yönlü mesajlaşmaya olanak tanır ve bir işlem sistemine ihtiyaç duymaz. Bu, WebSocket'leri, **düşük gecikme veya sunucu tarafından başlatılan iletişim** gerektiren uygulamalar için özellikle avantajlı hale getirir, örneğin canlı finansal veri akışları.
### WebSocket Bağlantılarının Kurulması
@ -35,14 +35,14 @@ Sec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=
```
Bağlantı kurulduktan sonra, her iki yönde mesaj alışverişi için açık kalır.
**WebSocket El Sıkışmasının Ana Noktaları:**
**WebSocket El Sıkışma Anahtar Noktaları:**
- `Connection` ve `Upgrade` başlıkları, bir WebSocket el sıkışmasının başlatıldığını belirtir.
- `Sec-WebSocket-Version` başlığı, genellikle `13` olan istenen WebSocket protokol sürümünü gösterir.
- `Sec-WebSocket-Key` başlığında, her el sıkışmanın benzersiz olmasını sağlamak için Base64 kodlu rastgele bir değer gönderilir; bu, önbellek proxy'leriyle ilgili sorunları önlemeye yardımcı olur. Bu değer kimlik doğrulama için değil, yanıtın yanlış yapılandırılmış bir sunucu veya önbellek tarafından üretilmediğini doğrulamak içindir.
- `Connection` ve `Upgrade` başlıkları, bir WebSocket el sıkışmasının başlatıldığını işaret eder.
- `Sec-WebSocket-Version` başlığı, genellikle `13` olan istenen WebSocket protokol sürümünü belirtir.
- `Sec-WebSocket-Key` başlığında, her el sıkışmanın benzersiz olmasını sağlamak için Base64 kodlu rastgele bir değer gönderilir; bu, önbellek proxy'leri ile ilgili sorunları önlemeye yardımcı olur. Bu değer kimlik doğrulama için değil, yanıtın yanlış yapılandırılmış bir sunucu veya önbellek tarafından üretilmediğini doğrulamak içindir.
- Sunucunun yanıtındaki `Sec-WebSocket-Accept` başlığı, `Sec-WebSocket-Key`'in bir hash'idir ve sunucunun bir WebSocket bağlantısı açma niyetini doğrular.
Bu özellikler, el sıkışma sürecinin güvenli ve güvenilir olmasını sağlar ve verimli gerçek zamanlı iletişim için zemin hazırlar.
Bu özellikler, el sıkışma sürecinin güvenli ve güvenilir olmasını sağlar, verimli gerçek zamanlı iletişim için zemin hazırlar.
### Linux konsolu
@ -57,22 +57,27 @@ websocat -s 0.0.0.0:8000 #Listen in port 8000
### MitM websocket bağlantıları
Eğer istemcilerin mevcut yerel ağınızdan bir **HTTP websocket**'e bağlı olduğunu bulursanız, istemci ile sunucu arasında bir MitM saldırısı gerçekleştirmek için bir [ARP Spoofing Attack ](../generic-methodologies-and-resources/pentesting-network/index.html#arp-spoofing) denemek isteyebilirsiniz.\
İstemci bağlanmaya çalıştığında, o zaman şunu kullanabilirsiniz:
İstemci sizinle bağlantı kurmaya çalıştığında, o zaman şunu kullanabilirsiniz:
```bash
websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v
```
### Websockets enumeration
**Websockets'ı keşfetmek, parmak izi çıkarmak ve bilinen** **güvenlik açıklarını** **otomatik olarak** **bulmak** için **aracı** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **kullanabilirsiniz.**
**Aracı** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **kullanarak websockets'te bilinen** **güvenlik açıklarını** **otomatik olarak keşfedebilir, parmak izi çıkarabilir ve arama yapabilirsiniz.**
### Websocket Debug tools
- **Burp Suite**, MitM websockets iletişimini, normal HTTP iletişimi için yaptığına çok benzer bir şekilde destekler.
- [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite eklentisi**, **geçmişi** alarak, **yakalama kuralları** belirleyerek, **eşleşme ve değiştirme** kuralları kullanarak, **Intruder** ve **AutoRepeater** kullanarak Burp'ta Websocket iletişimlerini daha iyi yönetmenizi sağlar.
- [**WSSiP**](https://github.com/nccgroup/wssip)**:** "**WebSocket/Socket.io Proxy**" kısaltması olan bu araç, Node.js ile yazılmıştır ve **özelleştirilmiş** mesajları **yakalamak, kesmek, göndermek** ve istemci ile sunucu arasındaki tüm WebSocket ve Socket.IO iletişimlerini görüntülemek için bir kullanıcı arayüzü sağlar.
- [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite eklentisi**, **geçmişi** alma, **yakalama kuralları** ayarlama, **eşleşme ve değiştirme** kuralları kullanma, **Intruder** ve **AutoRepeater** kullanarak Burp'ta Websocket iletişimlerini daha iyi yönetmenizi sağlar.
- [**WSSiP**](https://github.com/nccgroup/wssip)**:** "WebSocket/Socket.io Proxy"nun kısaltması olan bu araç, Node.js ile yazılmıştır ve istemci ile sunucu arasındaki tüm WebSocket ve Socket.IO iletişimlerini **yakalamak, kesmek, özel** mesajlar göndermek ve görüntülemek için bir kullanıcı arayüzü sağlar.
- [**wsrepl**](https://github.com/doyensec/wsrepl), özellikle penetrasyon testi için tasarlanmış bir **etkileşimli websocket REPL**'dir. **Gelen websocket mesajlarını gözlemlemek ve yenilerini göndermek** için bir arayüz sağlar ve bu iletişimi **otomatikleştirmek** için kullanımı kolay bir çerçeve sunar.
- [**https://websocketking.com/**](https://websocketking.com/) diğer weblerle **websockets** kullanarak iletişim kurmak için bir **web**'dir.
- [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) diğer iletişim/protokol türlerinin yanı sıra, diğer weblerle **websockets** kullanarak iletişim kurmak için bir **web** sağlar.
- [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) diğer iletişim/protokol türleri arasında, diğer weblerle **websockets** kullanarak iletişim kurmak için bir **web** sağlar.
## Decrypting Websocket
- [https://github.com/Anof-cyber/PyCript](https://github.com/Anof-cyber/PyCript)
- [https://github.com/Anof-cyber/PyCript-WebSocket/](https://github.com/Anof-cyber/PyCript-WebSocket/)
## Websocket Lab
@ -80,15 +85,15 @@ websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v
## Cross-site WebSocket hijacking (CSWSH)
**Cross-site WebSocket hijacking**, ayrıca **cross-origin WebSocket hijacking** olarak da bilinir, **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)**'nin WebSocket el sıkışmalarını etkileyen belirli bir durumu olarak tanımlanır. Bu güvenlik açığı, WebSocket el sıkışmalarının yalnızca **HTTP çerezleri** aracılığıyla **CSRF tokenları** veya benzeri güvenlik önlemleri olmadan kimlik doğrulaması yaptığı durumlarda ortaya çıkar.
**Cross-site WebSocket hijacking**, ayrıca **cross-origin WebSocket hijacking** olarak da bilinir, WebSocket el sıkışmalarını etkileyen **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)**'nin özel bir durumu olarak tanımlanır. Bu güvenlik açığı, WebSocket el sıkışmalarının yalnızca **HTTP çerezleri** aracılığıyla kimlik doğrulaması yaptığı durumlarda ortaya çıkar; **CSRF tokenleri** veya benzeri güvenlik önlemleri yoktur.
Saldırganlar, savunmasız bir uygulamaya çapraz alan WebSocket bağlantısı başlatan bir **kötü niyetli web sayfası** barındırarak bunu istismar edebilir. Sonuç olarak, bu bağlantı, uygulama ile kurbanın oturumu ile bir parça olarak kabul edilir ve oturum yönetim mekanizmasındaki CSRF korumasının eksikliğinden yararlanır.
Saldırganlar, savunmasız bir uygulamaya çapraz alan WebSocket bağlantısı başlatan **kötü niyetli bir web sayfası** barındırarak bunu istismar edebilir. Sonuç olarak, bu bağlantı, uygulama ile kurbanın oturumunun bir parçası olarak kabul edilir ve oturum yönetim mekanizmasında CSRF korumasının eksikliğinden yararlanır.
### Simple Attack
**Websocket** bağlantısı **kurulurken** **çerez** sunucuya **gönderilir**. **Sunucu**, her **belirli** **kullanıcıyı** gönderilen çerez temelinde **websocket** **oturumu** ile **ilişkilendirmek** için bunu kullanıyor olabilir.
**Websocket** bağlantısı **kurulduğunda** **çerez** sunucuya **gönderilir**. **Sunucu**, her **belirli** **kullanıcıyı** gönderilen çereze dayalı olarak **websocket** **oturumu** ile **ilişkilendirmek** için bunu kullanıyor olabilir.
Daha sonra, **örneğin** **websocket** **sunucusu**, bir mesaj "**READY"** gönderildiğinde bir kullanıcının **konuşma geçmişini** geri gönderirse, o zaman bağlantıyı kuran **basit bir XSS** (çerez **otomatik olarak** kurban kullanıcısını yetkilendirmek için **gönderilecektir**) **"READY"** göndererek **konuşma** geçmişini **geri alabilecektir**.
Daha sonra, **örneğin** **websocket** **sunucusu**, bir mesaj "**READY"** gönderildiğinde bir kullanıcının konuşma geçmişini **geri gönderirse**, o zaman bağlantıyı kuran **basit bir XSS** (çerez **otomatik olarak** kurban kullanıcının yetkilendirilmesi için **gönderilecektir**) **"READY"** göndererek **konuşma** geçmişini **geri alabilecektir**.
```html
<script>
websocket = new WebSocket('wss://your-websocket-URL')
@ -142,9 +147,9 @@ WebSocket'lerde de Yarış Koşulları vardır, [daha fazla bilgi için burayı
Web Sockets, **verileri sunucu tarafına ve istemci tarafına göndermek için bir mekanizma** olduğundan, sunucu ve istemcinin bilgileri nasıl işlediğine bağlı olarak, **Web Sockets, bir websocket üzerinden bir kullanıcının girdiğini kullanarak XSS, SQLi veya diğer yaygın web zafiyetlerini istismar etmek için kullanılabilir.**
## **WebSocket Smuggling**
## **WebSocket Kaçırma**
Bu zafiyet, **ters proxy kısıtlamalarını aşmanıza** olanak tanıyabilir, çünkü onlara **bir websocket iletişiminin kurulduğunu** düşündürebilir (gerçek olmasa bile). Bu, bir saldırganın **gizli uç noktalara erişmesine** olanak tanıyabilir. Daha fazla bilgi için aşağıdaki sayfayı kontrol edin:
Bu zafiyet, **ters proxy kısıtlamalarını aşmanıza** olanak tanıyabilir ve onlara **bir websocket iletişiminin kurulduğunu** düşündürebilir (gerçek olmasa bile). Bu, bir saldırganın **gizli uç noktalara erişmesine** olanak tanıyabilir. Daha fazla bilgi için aşağıdaki sayfaya bakın:
{{#ref}}
h2c-smuggling.md