<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
Uhusiano wa WebSocket unawekwa kupitia salamu ya awali ya **HTTP** na umebuniwa kuwa **wenye muda mrefu**, kuruhusu mawasiliano ya pande zote wakati wowote bila hitaji la mfumo wa shughuli. Hii inafanya WebSockets kuwa muhimu sana kwa maombi yanayohitaji **latensi ndogo au mawasiliano yaliyoanzishwa na seva**, kama vile mito ya data ya kifedha ya moja kwa moja.
Maelezo mazuri juu ya kuweka uhusiano wa WebSocket yanaweza kupatikana [**hapa**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc). Kwa muhtasari, uhusiano wa WebSocket kawaida huanzishwa kupitia JavaScript ya upande wa mteja kama inavyoonyeshwa hapa chini:
Wakati wa kuanzisha uhusiano, mchakato wa handshake unafanywa kati ya kivinjari na seva kupitia HTTP. Mchakato wa handshake unahusisha kivinjari kutuma ombi na seva kujibu, kama inavyoonyeshwa katika mifano ifuatayo:
- Vichwa vya `Connection` na `Upgrade` vinatuma ishara ya kuanzisha handshake ya WebSocket.
- Kichwa cha `Sec-WebSocket-Version` kinabainisha toleo la itifaki ya WebSocket inayotaka, kawaida ni `13`.
- Thamani ya kipekee iliyosimbwa kwa Base64 hutumwa katika kichwa cha `Sec-WebSocket-Key`, ikidhibitisha kuwa kila handshake ni ya kipekee, ambayo husaidia kuzuia matatizo na wakala wa kuhifadhi. Thamani hii sio kwa ajili ya uwakilishi bali kuthibitisha kuwa jibu halijazalishwa na seva au hifadhi iliyopangwa vibaya.
- Kichwa cha `Sec-WebSocket-Accept` katika jibu la seva ni hash ya `Sec-WebSocket-Key`, ikithibitisha nia ya seva ya kufungua uhusiano wa WebSocket.
Ikiwa utagundua kuwa wateja wameunganishwa kwenye **websocket ya HTTP** kutoka kwenye mtandao wako wa ndani wa sasa, unaweza kujaribu [Shambulio la ARP Spoofing](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) ili kutekeleza shambulio la MitM kati ya mteja na seva.\
Unaweza kutumia **zana** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **kugundua, kufuatilia na kutafuta****makosa yanayojulikana** katika websockets kiotomatiki.
* **Burp Suite** inasaidia mawasiliano ya MitM ya websockets kwa njia sawa na vile inavyofanya kwa mawasiliano ya kawaida ya HTTP.
* Kifaa cha [**socketsleuth**](https://github.com/snyk/socketsleuth) cha Burp Suite kitakuruhusu kusimamia mawasiliano ya Websocket vizuri katika Burp kwa kupata **historia**, kuweka **kanuni za kuingilia**, kutumia kanuni za **kufanana na kubadilisha**, kutumia **Intruder** na **AutoRepeater**.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** Kifupi cha "**WebSocket/Socket.io Proxy**", zana hii, iliyoandikwa kwa Node.js, inatoa kiolesura cha mtumiaji kwa **kukamata, kuingilia, kutuma ujumbe wa kawaida** na kuona mawasiliano yote ya WebSocket na Socket.IO kati ya mteja na seva.
* [**wsrepl**](https://github.com/doyensec/wsrepl) ni **REPL ya websocket ya kuingiliana** iliyoundwa mahsusi kwa ajili ya upenyezaji wa mtihani. Inatoa kiolesura cha kuangalia **ujumbe wa websocket unaoingia na kutuma ujumbe mpya**, na mfumo rahisi wa kutumia kwa **kuautomatisha** mawasiliano haya. 
* [**https://websocketking.com/**](https://websocketking.com/) ni **wavuti ya kuwasiliana** na wavuti nyingine kwa kutumia **websockets**.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) pamoja na aina nyingine za mawasiliano/itifaki, inatoa **wavuti ya kuwasiliana** na wavuti nyingine kwa kutumia **websockets**.
Katika [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) una nambari ya kuzindua wavuti kwa kutumia websockets na katika [**chapisho hili**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) unaweza kupata maelezo.
**Udukuzi wa Websocket wa Msalaba**, pia inajulikana kama **udukuzi wa Websocket wa asili ya msalaba**, unatambuliwa kama kesi maalum ya **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** inayoathiri mikono ya Websocket. Makosa haya yanatokea wakati mikono ya Websocket inathibitisha tu kupitia **vidakuzi vya HTTP** bila **vitambulisho vya CSRF** au hatua za usalama kama hizo.
Wahalifu wanaweza kutumia hii kwa kuandaa **ukurasa mbaya** ambao unazindua uhusiano wa Websocket wa asili ya msalaba kwa maombi yaliyo hatarini. Kwa hiyo, uhusiano huu unachukuliwa kama sehemu ya kikao cha mwathirika na maombi, ukidukua ukosefu wa ulinzi wa CSRF katika mfumo wa kushughulikia kikao.
Tambua kwamba wakati wa **kuweka** uhusiano wa **websocket**, **kidakuzi** hutumwa kwa seva. **Seva** inaweza kutumia kidakuzi hicho kwa **kuhusisha** kila **mtumiaji maalum** na **kikao chake cha websocket kulingana na kidakuzi kilichotumwa**.
Kwa hiyo, ikiwa kwa **mfano****seva ya websocket inarudisha historia ya mazungumzo** ya mtumiaji ikiwa ujumbe wenye "**READY"** unatumwa, basi **XSS rahisi** inayoweka uhusiano (kidakuzi kitatumwa **kiotomatiki** kuidhinisha mtumiaji mwathirika) **kutuma** "**READY**" itaweza **kupata** historia ya **mazungumzo**:
Katika chapisho hili la blogu [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/), mshambuliaji alifanikiwa **kutekeleza Javascript ya kiholela katika kikoa kidogo** cha kikoa ambapo mawasiliano ya soketi ya wavuti yalikuwa yanatokea. Kwa kuwa ilikuwa ni **kikoa kidogo**, **kidakuzi** kilikuwa kinatumiwa na kwa sababu **Websocket haikuchunguza Asili kwa usahihi**, ilikuwa inawezekana kuwasiliana nayo na **kuiba alama kutoka kwake**.
Nakili programu-jalizi ya wavuti unayotaka kuiga (faili za .html kwa mfano) na ndani ya skripti ambapo mawasiliano ya soketi ya wavuti yanatokea, ongeza msimbo huu:
Sasa pakua faili ya `wsHook.js` kutoka [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) na **ihifadhi ndani ya folda na faili za wavuti**.\
Kwa kufichua programu ya wavuti na kumfanya mtumiaji kuunganisha nayo, utaweza kuiba ujumbe uliotumwa na kupokelewa kupitia websocket:
Kwa kuwa Web Sockets ni mfumo wa **kupeleka data kwa upande wa seva na upande wa mteja**, kulingana na jinsi seva na mteja wanavyoshughulikia habari, **Web Sockets inaweza kutumika kudhoofisha udhaifu mwingine kama XSS, SQLi au udhaifu mwingine wa kawaida wa wavuti kwa kutumia kuingiza kwa mtumiaji kutoka kwenye websocket.**
Udhaifu huu unaweza kukuruhusu **kukiuka vizuizi vya wakala wa kurudisha** kwa kuwafanya waamini kwamba **mawasiliano ya websocket yameanzishwa** (hata kama sio kweli). Hii inaweza kuruhusu mshambuliaji kupata **vituo vilivyofichwa**. Kwa habari zaidi angalia ukurasa ufuatao:
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako inatangazwa katika HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.