Translated ['src/pentesting-web/clickjacking.md'] to sw

This commit is contained in:
Translator 2025-01-06 10:28:44 +00:00
parent c3c46acaf3
commit 32ba06a976

View File

@ -4,18 +4,18 @@
## What is Clickjacking
Katika shambulio la clickjacking, **mtumiaji** anachukuliwa **kwa udanganyifu** ili **kubofya** **kipengele** kwenye ukurasa wa wavuti ambacho ni **bila kuonekana** au kimejificha kama kipengele kingine. Manipulasi hii inaweza kusababisha matokeo yasiyokusudiwa kwa mtumiaji, kama vile kupakua malware, kuelekezwa kwenye kurasa za wavuti zenye uharibifu, kutoa akidi au taarifa nyeti, uhamishaji wa pesa, au ununuzi wa bidhaa mtandaoni.
Katika shambulio la clickjacking, **mtumiaji** anachukuliwa **kudanganywa** ili **kubofya** **kipengele** kwenye ukurasa wa wavuti ambacho ni **bila kuonekana** au kimejificha kama kipengele kingine. Manipulasi hii inaweza kusababisha matokeo yasiyokusudiwa kwa mtumiaji, kama vile kupakua malware, kuelekezwa kwenye kurasa za wavuti zenye uharibifu, kutoa akidi au taarifa nyeti, uhamishaji wa pesa, au ununuzi wa bidhaa mtandaoni.
### Prepopulate forms trick
Wakati mwingine inawezekana **kujaza thamani ya maeneo ya fomu kwa kutumia vigezo vya GET wakati wa kupakia ukurasa**. Mshambuliaji anaweza kutumia tabia hii vibaya kujaza fomu kwa data isiyo ya kawaida na kutuma payload ya clickjacking ili mtumiaji abofye kitufe cha Submit.
Wakati mwingine inawezekana **kujaza thamani ya maeneo ya fomu kwa kutumia vigezo vya GET wakati wa kupakia ukurasa**. Mshambuliaji anaweza kutumia tabia hii vibaya kujaza fomu na data isiyo ya kawaida na kutuma payload ya clickjacking ili mtumiaji abofye kitufe cha Submit.
### Populate form with Drag\&Drop
Ikiwa unahitaji mtumiaji **ajaze fomu** lakini hutaki kumwambia moja kwa moja aandike taarifa maalum (kama barua pepe au nywila maalum unayojua), unaweza tu kumwambia **Drag\&Drop** kitu ambacho kitaandika data yako iliyodhibitiwa kama katika [**mfano huu**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
### Basic Payload
```markup
```css
<style>
iframe {
position:relative;
@ -34,8 +34,8 @@ z-index: 1;
<div>Click me</div>
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
```
### Payload ya Hatua Nyingi
```markup
### Multistep Payload
```css
<style>
iframe {
position:relative;
@ -59,7 +59,7 @@ left:210px;
<iframe src="https://vulnerable.net/account"></iframe>
```
### Drag\&Drop + Click payload
```markup
```css
<html>
<head>
<style>
@ -89,25 +89,34 @@ background: #F00;
```
### XSS + Clickjacking
Ikiwa umepata **shambulio la XSS ambalo linahitaji mtumiaji kubonyeza** kwenye kipengele fulani ili **kuanzisha** XSS na ukurasa ni **hauna kinga dhidi ya clickjacking**, unaweza kutumia hii kumdanganya mtumiaji kubonyeza kitufe/kiungo.\
Ikiwa umepata **shambulio la XSS linalohitaji mtumiaji kubonyeza** kwenye kipengele fulani ili **kuanzisha** XSS na ukurasa ni **hawezi kuathiriwa na clickjacking**, unaweza kutumia hiyo kumdanganya mtumiaji kubonyeza kitufe/kiungo.\
Mfano:\
Umebaini **self XSS** katika maelezo ya kibinafsi ya akaunti (maelezo ambayo **ni wewe tu unaweza kuweka na kusoma**). Ukurasa wenye **fomu** ya kuweka maelezo haya ni **hauna kinga** dhidi ya **Clickjacking** na unaweza **kujaza** **fomu** kwa vigezo vya GET.\
Mshambuliaji anaweza kuandaa shambulio la **Clickjacking** kwa ukurasa huo **ukijaza** **fomu** kwa **XSS payload** na **kumdanganya** **mtumiaji** ku **wasilisha** fomu. Hivyo, **wakati fomu inawasilishwa** na thamani zimebadilishwa, **mtumiaji atatekeleza XSS**.
Umebaini **self XSS** katika maelezo ya kibinafsi ya akaunti (maelezo ambayo **ni wewe pekee unaweza kuweka na kusoma**). Ukurasa wenye **fomu** ya kuweka maelezo haya ni **hawezi kuathiriwa** na **Clickjacking** na unaweza **kujaza** **fomu** kwa vigezo vya GET.\
Mshambuliaji anaweza kuandaa shambulio la **Clickjacking** kwa ukurasa huo **ukijaza** **fomu** kwa **XSS payload** na **kumdanganya** **mtumiaji** ku **Tuma** fomu. Hivyo, **wakati fomu inatumwa** na thamani zimebadilishwa, **mtumiaji atatekeleza XSS**.
### DoubleClickjacking
Kwanza [ilielezwa katika chapisho hili](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), mbinu hii itamwomba mwathirika kubonyeza mara mbili kwenye kitufe cha ukurasa maalum kilichowekwa mahali fulani, na kutumia tofauti za wakati kati ya matukio ya mousedown na onclick ili kupakia ukurasa wa mwathirika wakati wa kubonyeza mara mbili ili **mwathirika kweli abonyeze kitufe halali kwenye ukurasa wa mwathirika**.
Mfano unaweza kuonekana katika video hii: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
> [!WARNING]
> Mbinu hii inaruhusu kumdanganya mtumiaji kubonyeza mahali 1 kwenye ukurasa wa mwathirika ikipita kila ulinzi dhidi ya clickjacking. Hivyo mshambuliaji anahitaji kutafuta **vitendo nyeti ambavyo vinaweza kufanywa kwa kubonyeza 1 tu, kama vile maonyo ya OAuth yanayokubali ruhusa**.
## Mikakati ya Kupunguza Clickjacking
### Ulinzi wa Upande wa Mteja
Scripts zinazotekelezwa upande wa mteja zinaweza kufanya hatua za kuzuia Clickjacking:
Scripts zinazotekelezwa upande wa mteja zinaweza kufanya vitendo vya kuzuia Clickjacking:
- Kuhakikisha dirisha la programu ndilo dirisha kuu au la juu.
- Kufanya fremu zote ziwe wazi.
- Kuzuia bonyezo kwenye fremu zisizoonekana.
- Kugundua na kuwajulisha watumiaji kuhusu jaribio la Clickjacking.
- Kuzuia bonyeza kwenye fremu zisizoonekana.
- Kugundua na kuwajulisha watumiaji kuhusu majaribio ya Clickjacking yanayoweza kutokea.
Hata hivyo, hizi scripts za kuvunja fremu zinaweza kupuuziliwa mbali:
- **Mipangilio ya Usalama ya Kivinjari:** Baadhi ya vivinjari vinaweza kuzuia hizi scripts kulingana na mipangilio yao ya usalama au ukosefu wa msaada wa JavaScript.
- **Mipangilio ya Usalama ya Vivinjari:** Vivinjari vingine vinaweza kuzuia hizi scripts kulingana na mipangilio yao ya usalama au ukosefu wa msaada wa JavaScript.
- **HTML5 iframe `sandbox` Attribute:** Mshambuliaji anaweza kuondoa scripts za kuvunja fremu kwa kuweka sifa ya `sandbox` na thamani za `allow-forms` au `allow-scripts` bila `allow-top-navigation`. Hii inazuia iframe kuthibitisha ikiwa ni dirisha la juu, e.g.,
```html
<iframe
@ -124,38 +133,38 @@ The `allow-forms` and `allow-scripts` values enable actions within the iframe wh
The **`X-Frame-Options` HTTP response header** informs browsers about the legitimacy of rendering a page in a `<frame>` or `<iframe>`, helping to prevent Clickjacking:
- `X-Frame-Options: deny` - Hakuna domain inayoweza kuweka maudhui kwenye fremu.
- `X-Frame-Options: sameorigin` - Ni tovuti ya sasa pekee inayoweza kuweka maudhui kwenye fremu.
- `X-Frame-Options: allow-from https://trusted.com` - Ni 'uri' iliyoainishwa pekee inayoweza kuweka ukurasa kwenye fremu.
- `X-Frame-Options: sameorigin` - Tovuti ya sasa pekee inaweza kuweka maudhui kwenye fremu.
- `X-Frame-Options: allow-from https://trusted.com` - Tovuti iliyoainishwa pekee inaweza kuweka ukurasa kwenye fremu.
- Kumbuka mipaka: ikiwa kivinjari hakikubali mwelekeo huu, huenda usifanye kazi. Kivinjari vingine hupendelea mwelekeo wa CSP frame-ancestors.
#### Content Security Policy (CSP) frame-ancestors directive
**`frame-ancestors` directive in CSP** ni njia inayoshauriwa kwa ajili ya ulinzi wa Clickjacking:
**`frame-ancestors` directive in CSP** is the advised method for Clickjacking protection:
- `frame-ancestors 'none'` - Inafanana na `X-Frame-Options: deny`.
- `frame-ancestors 'self'` - Inafanana na `X-Frame-Options: sameorigin`.
- `frame-ancestors trusted.com` - Inafanana na `X-Frame-Options: allow-from`.
- `frame-ancestors 'none'` - Kama `X-Frame-Options: deny`.
- `frame-ancestors 'self'` - Kama `X-Frame-Options: sameorigin`.
- `frame-ancestors trusted.com` - Kama `X-Frame-Options: allow-from`.
Kwa mfano, CSP ifuatayo inaruhusu tu kuweka fremu kutoka kwenye domain ile ile:
For instance, the following CSP only allows framing from the same domain:
`Content-Security-Policy: frame-ancestors 'self';`
Maelezo zaidi na mifano tata yanaweza kupatikana katika [frame-ancestors CSP documentation](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) na [Mozilla's CSP frame-ancestors documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
Further details and complex examples can be found in the [frame-ancestors CSP documentation](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) and [Mozilla's CSP frame-ancestors documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
### Content Security Policy (CSP) with `child-src` and `frame-src`
**Content Security Policy (CSP)** ni kipimo cha usalama kinachosaidia kuzuia Clickjacking na mashambulizi mengine ya kuingiza msimbo kwa kuainisha vyanzo gani kivinjari kinapaswa kuruhusu kupakia maudhui.
**Content Security Policy (CSP)** is a security measure that helps in preventing Clickjacking and other code injection attacks by specifying which sources the browser should allow to load content.
#### `frame-src` Directive
- Inaainisha vyanzo halali kwa ajili ya fremu.
- Ni maalum zaidi kuliko mwelekeo wa `default-src`.
- Defines valid sources for frames.
- More specific than the `default-src` directive.
```
Content-Security-Policy: frame-src 'self' https://trusted-website.com;
```
Sera hii inaruhusu fremu kutoka chanzo kimoja (mwenyewe) na https://trusted-website.com.
#### `child-src` Directive
#### `child-src` Mwelekeo
- Imeanzishwa katika kiwango cha CSP 2 kuweka vyanzo halali kwa wafanyakazi wa wavuti na fremu.
- Inafanya kazi kama akiba kwa frame-src na worker-src.