# Kudukiza Majibu ya HTTP / Desync
Jifunze kuhusu kudukiza AWS kutoka mwanzo hadi mtaalamu na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako inatangazwa katika HackTricks** au **kupakua HackTricks katika 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 kudukiza kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Mbinu ya chapisho hili ilitokana na video: [https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s](https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s)**
## Kudukiza Safu ya Ombi la HTTP
Kwanza kabisa, mbinu hii **inatumia udhaifu wa Kudukiza Ombi la HTTP**, kwa hivyo unahitaji kujua ni nini:
**Tofauti kuu** kati ya mbinu hii na kudukiza kawaida ya Ombi la HTTP ni kwamba **badala ya kushambulia ombi la mwathirika kwa kuongeza kipimo**, tutakuwa **kuvuja au kubadilisha majibu anayopokea mwathirika**. Hii inafanywa kwa kutuma ombi 1 na nusu ili kudukiza Kudukiza Ombi la HTTP, **tuma ombi 2 kamili ili kudukiza safu za majibu za wakala**.
Hii ni kwa sababu tutaweza **kudukiza safu ya majibu** ili **majibu** kutoka kwa **ombi halali** la **mwathirika yatumwe kwa mshambuliaji**, au kwa **kuingiza maudhui yanayodhibitiwa na mshambuliaji kwenye majibu kwa mwathirika**.
### Kudukiza Safu ya Mpipelines ya HTTP
HTTP/1.1 inaruhusu kuomba **rasilimali tofauti bila kusubiri rasilimali za awali**. Kwa hivyo, ikiwa kuna **wakala** katikati, ni jukumu la wakala **kuweka usawazishaji wa ombi zilizotumwa kwa seva ya nyuma na majibu yanayotoka**.
Walakini, kuna tatizo la kuduwaza safu za majibu. Ikiwa mshambuliaji anatuma shambulio la Kudukiza Majibu ya HTTP na majibu kwa **ombi la awali na lile lililodukizwa yanajibiwa mara moja**, majibu lililodukizwa halitawekwa kwenye safu ya majibu ya mwathirika lakini litakuwa **limefutwa kama kosa**.
![](<../.gitbook/assets/image (635) (1) (1) (1).png>)
Kwa hivyo, inahitajika kwamba **ombi lililodukizwa** **lichukue muda zaidi kusindika** ndani ya seva ya nyuma. Kwa hivyo, wakati ombi lililodukizwa linasindika, mawasiliano na mshambuliaji yatakuwa yamekwisha.
Ikiwa katika hali hii maalum **mwathirika amepeleka ombi** na **ombi lililodukizwa linajibiwa kabla** ya ombi halali, **majibu lililodukizwa yatatumiwa kwa mwathirika**. Kwa hivyo, mshambuliaji atakuwa **anadhibiti ombi "lililotekelezwa" na mwathirika**.
Zaidi ya hayo, ikiwa **mshambuliaji kisha anafanya ombi** na **majibu halali** kwa **ombi la mwathirika yanajibiwa** **kabla** ya ombi la mshambuliaji. **Majibu kwa mwathirika yatatumiwa kwa mshambuliaji**, **kuiba** majibu kwa mwathirika (ambayo inaweza kuwa na kichwa kama vile **Set-Cookie**).
![](<../.gitbook/assets/image (658) (1).png>)
![](<../.gitbook/assets/image (655) (1) (1) (1).png>)
### Uingizaji wa Ndani Mbalimbali
Tofauti nyingine **ya kuvutia** na kudukiza kawaida ya Ombi la HTTP ni kwamba, katika shambulio la kawaida la udanganyifu wa ombi, **lengo** ni **kubadilisha mwanzo wa ombi la mwathirika** ili ifanye hatua isiyotarajiwa. Katika shambulio la **kudukiza majibu ya HTTP**, kwa kuwa **unatuma ombi kamili**, unaweza **kuingiza katika malipo moja majibu mengi** ambayo yatakuwa **kuduwaza watumiaji wengi** ambao watakuwa **wakipokea** majibu **yaliyodukizwa**.
Mbali na kuweza **kugawa kwa urahisi majaribio mengi** kwa watumiaji halali, hii pia inaweza kutumika kusababisha **DoS** kwenye seva.
### Uendeshaji wa Shambulio
Kama ilivyoelezwa hapo awali, ili kutumia mbinu hii, inahitajika kwamba **ujumbe uliodukizwa wa kwanza** ndani ya seva **uchukue muda mwingi kusindika**.
Ombi hili la kuchukua muda linatosha ikiwa tunataka tu **jaribu kuiba majibu ya mwathirika**. Lakini ikiwa unataka kufanya shambulio lenye utata zaidi, hii itakuwa muundo wa kawaida wa shambulio.
Kwanza kabisa, **ombi la awali** likitumia **Kudukiza Ombi la HTTP**, kisha **ombi la kuchukua muda** na kisha **ombi 1 au zaidi ya malipo** ambayo majibu yake yatatumiwa kwa waathirika.
## Kudukiza Safu ya Majibu ya HTTP
### Kukamata ombi za watumiaji wengine
Kama ilivyo na malipo yaliyofahamika ya Kudukiza Ombi la HTTP, unaweza **kuiba ombi la mwathirika** na tofauti muhimu: Katika kesi hii, unahitaji tu **kupeleka yaliyomo yanayorejelewa kwenye majibu**, **hakuna uhifadhi endelevu** unahitajika.
Kwanza, mshambuliaji anapeleka malipo yaliyokuwa na **ombi la mwisho la POST na kipengele kilichorejelewa** mwishoni na Content-Length kubwa
![](<../.gitbook/assets/image (625).png>)
Kisha, mara tu **ombi la awali** (buluu) liliposindika na **wakati** ombi la **kulala** linasindika (manjano) **ombi inayofuata inayofika kutoka
### Utata wa Yaliyomo
Kufuatia mfano uliopita, ukijua kuwa unaweza **kudhibiti mwili** wa ombi ambalo jibu lake linatarajiwa kupokelewa na mwathirika na kwamba jibu la **HEAD** kawaida lina **Content-Type na Content-Length** katika vichwa vyake, unaweza **kutuma ombi kama ifuatavyo** ili kusababisha XSS kwa mwathirika bila ukurasa kuwa na udhaifu wa XSS:
![](<../.gitbook/assets/image (654) (1) (1) (1) (1).png>)
### Kuharibu Cache
Kwa kutumia shambulio la utata wa yaliyomo la majibu yaliyosawazishwa hapo awali, **ikiwa cache inahifadhi jibu kwa ombi lililofanywa na mwathirika na jibu hili ni moja linalosababisha XSS, basi cache imeharibiwa**.
Ombi la nia mbaya linaloleta mzigo wa XSS:
![](<../.gitbook/assets/image (644) (1).png>)
Jibu la nia mbaya kwa mwathirika ambalo lina kichwa kinachoelekeza cache kuhifadhi jibu:
![](<../.gitbook/assets/image (629) (1).png>)
{% hint style="warning" %}
Tafadhali kumbuka kuwa katika kesi hii ikiwa **"mwathirika" ni mshambuliaji** anaweza sasa kufanya **uharibifu wa cache kwenye URL za kiholela** kwani anaweza **kudhibiti URL ambayo itahifadhiwa** na jibu la nia mbaya.
{% endhint %}
### Udanganyifu wa Cache ya Wavuti
Shambulio hili ni kama lile lililopita, lakini **badala ya kuingiza mzigo ndani ya cache, mshambuliaji atahifadhi habari za mwathirika ndani ya cache:**
![](<../.gitbook/assets/image (643) (1) (1).png>)
### Kugawanya Majibu
Lengo la shambulio hili ni kutumia tena **usawazishaji wa majibu** ili **kufanya proksi itume majibu yaliyotengenezwa na mshambuliaji kwa 100%**.
Ili kufanikisha hili, mshambuliaji anahitaji kupata mwisho wa programu ya wavuti ambao **unarejelea baadhi ya thamani ndani ya jibu** na **kujua urefu wa yaliyomo ya jibu la HEAD**.
Atatuma **shambulio** kama hili:
![](<../.gitbook/assets/image (649) (1) (1) (1).png>)
Baada ya ombi la kwanza kutatuliwa na kutumwa kwa mshambuliaji, **ombi la mwathirika linaongezwa kwenye foleni**:
![](<../.gitbook/assets/image (661) (1) (1) (1).png>)
Mwathirika atapokea kama jibu **jibu la HEAD + yaliyomo ya jibu la pili (linaloonyesha sehemu ya data iliyorejelewa):**
![](<../.gitbook/assets/image (633) (1).png>)
Hata hivyo, tafadhali kumbuka jinsi **data iliyorejelewa ilikuwa na ukubwa kulingana na Content-Length** ya jibu la **HEAD** ambalo **lilizalisha jibu la HTTP halali kwenye foleni ya majibu**.
Kwa hiyo, **ombi la pili la mwathirika** litakuwa **likipokea** kama **jibu kitu kilichotengenezwa kabisa na mshambuliaji**. Kwa kuwa jibu limeundwa kabisa na mshambuliaji, yeye pia anaweza **kufanya cache ya jibu**.
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.