# 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.