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 pl
This commit is contained in:
parent
6941698796
commit
a55c61cd70
@ -4,7 +4,7 @@
|
||||
|
||||
## Czym są WebSockety
|
||||
|
||||
Połączenia WebSocket są nawiązywane poprzez początkowe **HTTP** handshake i są zaprojektowane do bycia **długoterminowymi**, co pozwala na dwukierunkowe przesyłanie wiadomości w dowolnym momencie bez potrzeby systemu transakcyjnego. To sprawia, że WebSockety są szczególnie korzystne dla aplikacji wymagających **niskiej latencji lub komunikacji inicjowanej przez serwer**, takich jak strumienie danych finansowych na żywo.
|
||||
Połączenia WebSocket są nawiązywane poprzez początkowe **HTTP** handshake i są zaprojektowane jako **długoterminowe**, co pozwala na dwukierunkowe przesyłanie wiadomości w dowolnym momencie bez potrzeby systemu transakcyjnego. To sprawia, że WebSockety są szczególnie korzystne dla aplikacji wymagających **niskiej latencji lub komunikacji inicjowanej przez serwer**, takich jak strumienie danych finansowych na żywo.
|
||||
|
||||
### Nawiązywanie połączeń WebSocket
|
||||
|
||||
@ -14,7 +14,7 @@ var ws = new WebSocket("wss://normal-website.com/ws")
|
||||
```
|
||||
Protokół `wss` oznacza połączenie WebSocket zabezpieczone **TLS**, podczas gdy `ws` wskazuje na **niezabezpieczone** połączenie.
|
||||
|
||||
Podczas nawiązywania połączenia wykonywane jest uzgadnianie między przeglądarką a serwerem za pośrednictwem HTTP. Proces uzgadniania polega na tym, że przeglądarka wysyła żądanie, a serwer odpowiada, jak pokazano w poniższych przykładach:
|
||||
Podczas nawiązywania połączenia wykonywane jest uzgadnianie między przeglądarką a serwerem za pomocą HTTP. Proces uzgadniania polega na tym, że przeglądarka wysyła żądanie, a serwer odpowiada, co ilustrują następujące przykłady:
|
||||
|
||||
Przeglądarka wysyła żądanie uzgadniania:
|
||||
```javascript
|
||||
@ -26,7 +26,7 @@ Connection: keep-alive, Upgrade
|
||||
Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2
|
||||
Upgrade: websocket
|
||||
```
|
||||
Odpowiedź serwera na handshake:
|
||||
Odpowiedź handshake serwera:
|
||||
```javascript
|
||||
HTTP/1.1 101 Switching Protocols
|
||||
Connection: Upgrade
|
||||
@ -67,16 +67,21 @@ Możesz użyć **narzędzia** [**https://github.com/PalindromeLabs/STEWS**](http
|
||||
|
||||
### Websocket Debug tools
|
||||
|
||||
- **Burp Suite** obsługuje komunikację MitM w websockets w bardzo podobny sposób, jak robi to dla standardowej komunikacji HTTP.
|
||||
- **Burp Suite** obsługuje komunikację MitM w websockets w bardzo podobny sposób, jak robi to dla zwykłej komunikacji HTTP.
|
||||
- Rozszerzenie [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite** pozwoli Ci lepiej zarządzać komunikacją Websocket w Burp, uzyskując **historię**, ustawiając **reguły przechwytywania**, używając reguł **match and replace**, korzystając z **Intruder** i **AutoRepeater.**
|
||||
- [**WSSiP**](https://github.com/nccgroup/wssip)**:** Skrót od "**WebSocket/Socket.io Proxy**", to narzędzie, napisane w Node.js, zapewnia interfejs użytkownika do **przechwytywania, przechwytywania, wysyłania niestandardowych** wiadomości i przeglądania wszystkich komunikacji WebSocket i Socket.IO między klientem a serwerem.
|
||||
- [**wsrepl**](https://github.com/doyensec/wsrepl) to **interaktywny websocket REPL** zaprojektowany specjalnie do testów penetracyjnych. Zapewnia interfejs do obserwowania **przychodzących wiadomości websocket i wysyłania nowych**, z łatwym w użyciu frameworkiem do **automatyzacji** tej komunikacji.
|
||||
- [**https://websocketking.com/**](https://websocketking.com/) to **strona do komunikacji** z innymi stronami za pomocą **websockets**.
|
||||
- [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) wśród innych typów komunikacji/protokółów, zapewnia **stronę do komunikacji** z innymi stronami za pomocą **websockets.**
|
||||
|
||||
## 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
|
||||
|
||||
W [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) masz kod do uruchomienia strony używającej websockets, a w [**tym poście**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) możesz znaleźć wyjaśnienie.
|
||||
W [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) masz kod do uruchomienia strony za pomocą websockets, a w [**tym poście**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) znajdziesz wyjaśnienie.
|
||||
|
||||
## Cross-site WebSocket hijacking (CSWSH)
|
||||
|
||||
@ -86,9 +91,9 @@ Napastnicy mogą to wykorzystać, hostując **złośliwą stronę internetową**
|
||||
|
||||
### Simple Attack
|
||||
|
||||
Zauważ, że podczas **nawiązywania** połączenia **websocket** **cookie** jest **wysyłane** do serwera. **Serwer** może go używać do **powiązania** każdego **konkretnego** **użytkownika** z jego **sesją websocket** na podstawie wysłanego cookie.
|
||||
Zauważ, że podczas **nawiązywania** połączenia **websocket** **ciasteczko** jest **wysyłane** do serwera. **Serwer** może go używać do **powiązania** każdego **konkretnego** **użytkownika** z jego **sesją websocket** na podstawie wysłanego ciasteczka.
|
||||
|
||||
Jeśli na przykład **serwer websocket** **wysyła z powrotem historię rozmowy** użytkownika, gdy wysyłana jest wiadomość z "**READY"**, to **prosty XSS** nawiązujący połączenie (**cookie** zostanie **wysłane** **automatycznie** w celu autoryzacji użytkownika ofiary) **wysyłając** "**READY**" będzie w stanie **odzyskać** historię **rozmowy**.
|
||||
Jeśli na przykład **serwer websocket** **wysyła z powrotem historię rozmowy** użytkownika, gdy wysyłana jest wiadomość z "**READY"**, to **prosty XSS** nawiązujący połączenie (**ciasteczko** zostanie **wysłane** **automatycznie** w celu autoryzacji użytkownika ofiary) **wysyłając** "**READY**" będzie w stanie **pobierać** historię **rozmowy**.
|
||||
```html
|
||||
<script>
|
||||
websocket = new WebSocket('wss://your-websocket-URL')
|
||||
@ -144,7 +149,7 @@ Ponieważ WebSockety są mechanizmem do **wysyłania danych na stronę serwera i
|
||||
|
||||
## **Przemyt WebSocketów**
|
||||
|
||||
Ta podatność może pozwolić na **obejście ograniczeń odwrotnych proxy**, sprawiając, że będą one wierzyć, że **komunikacja websocketowa została nawiązana** (nawet jeśli to nieprawda). Może to umożliwić atakującemu **dostęp do ukrytych punktów końcowych**. Aby uzyskać więcej informacji, sprawdź następującą stronę:
|
||||
Ta podatność może pozwolić na **obejście ograniczeń odwrotnych proxy**, sprawiając, że uwierzą, że **komunikacja websocketowa została nawiązana** (nawet jeśli to nieprawda). Może to pozwolić atakującemu na **dostęp do ukrytych punktów końcowych**. Aby uzyskać więcej informacji, sprawdź następującą stronę:
|
||||
|
||||
{{#ref}}
|
||||
h2c-smuggling.md
|
||||
|
Loading…
x
Reference in New Issue
Block a user