mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/websocket-attacks.md'] to tr
This commit is contained in:
parent
ea3a5b75e5
commit
1ba0c9d82b
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user