hacktricks/pentesting-web/http-response-smuggling-desync.md
2024-02-11 02:13:58 +00:00

9 KiB

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:

Mbinu ya chapisho hili ilitokana na video: 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.

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

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

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:

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:

Jibu la nia mbaya kwa mwathirika ambalo lina kichwa kinachoelekeza cache kuhifadhi jibu:

{% 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:

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:

Baada ya ombi la kwanza kutatuliwa na kutumwa kwa mshambuliaji, ombi la mwathirika linaongezwa kwenye foleni:

Mwathirika atapokea kama jibu jibu la HEAD + yaliyomo ya jibu la pili (linaloonyesha sehemu ya data iliyorejelewa):

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: