Attakk fuq sistemi front-end-back-end li jippermettilna nidħlu f'talbiet ta 'partijiet terzi

Kixfet dettalji ta’ attakk ġdid fuq siti li jużaw mudell front-end-back-end, bħal dawk li għaddejjin minn netwerks ta’ kunsinna ta’ kontenut, load balancers jew proxys. L-attakk jippermetti, billi jintbagħtu ċerti talbiet, li wieħed jidħol fil-kontenut ta 'talbiet oħra pproċessati fl-istess ħajt bejn il-frontend u l-backend. Il-metodu propost intuża b'suċċess biex jiġi organizzat attakk li għamilha possibbli li jiġu interċettati l-parametri ta 'awtentikazzjoni tal-utenti tas-servizz PayPal, li ħallas lir-riċerkaturi madwar 40 elf dollaru bħala parti minn programm biex jinforma dwar il-preżenza ta' vulnerabbiltajiet mhux imqabbda. L-attakk huwa applikabbli wkoll għal siti li jużaw in-netwerk tal-kunsinna tal-kontenut Akamai.

Il-qofol tal-problema huwa li l-frontends u l-backends spiss jipprovdu livelli differenti ta 'appoġġ għall-protokoll HTTP, iżda fl-istess ħin jinkapsulaw talbiet minn utenti differenti f'kanal komuni. Biex tgħaqqad it-talbiet li jirċievu l-frontend u t-talbiet għall-ipproċessar backend, tiġi stabbilita konnessjoni TCP ta 'ħajja twila, li permezz tagħha t-talbiet tal-utenti jiġu trażmessi, trażmessi tul il-katina wieħed wara l-ieħor, separati permezz tal-protokoll HTTP. Biex tissepara t-talbiet, l-intestaturi "Kontenut-Tul" (tiddetermina d-daqs totali tad-dejta fit-talba) u "Trasferiment-Kodifikazzjoni: chunked"(jippermettilek tittrasferixxi data f'partijiet, billi tispeċifika blokki ta' daqsijiet differenti fil-format "{daqs}\r\n{blokk}\r\n{daqs}\r\n{blokk}\r\n0").

Il-problema tqum jekk il-frontend jappoġġja biss "Tul-Kontenut" iżda jinjora "Trasferiment-Kodifikazzjoni: imqassam" (per eżempju, Akamai CDN għamel dan) jew viċi versa. Jekk Transfer-Encoding: chunked huwa appoġġjat fuq iż-żewġ naħat, il-karatteristiċi ta' implimentazzjoni tal-parsers tal-header HTTP jistgħu jintużaw għal attakk (pereżempju, meta l-parti ta' quddiem tinjora linji bħal "Transfer-Encoding: xchunked", "Transfer-Encoding: chunked" ”, “Transfer-Encoding” :[tab]chunked”, “X: X[\n]Transfer-Encoding: imqassam”, “Transfer-Encoding[\n]: chunked” jew “Transfer-Encoding: chunked”, u il-backend jipproċessahom b'suċċess).

F'dan il-każ, attakkant jista 'jibgħat talba li fiha kemm l-intestaturi "Content-Length" kif ukoll "Transfer-Encoding: chunked", iżda d-daqs f'"Content-Length" ma jikkorrispondix mad-daqs tal-katina chunked, li huwa iżgħar mill-valur attwali. Jekk il-frontend jipproċessa u jgħaddi t-talba skond "Content-Length" u l-backend jistenna li l-blokk jitlesta bbażat fuq "Transfer-Encoding: chunked", allura t-tmiem tad-dejta bbażata fuq "Transfer-Encoding: chunked" se jiġi determinat qabel u d-denb li jifdal tat-talba l-attakkant se jidher fil-bidu tat-talba li jmiss, i.e. l-attakkant ikun jista' jehmeż data arbitrarja mal-bidu tat-talba ta' xi ħadd ieħor trażmessa li jmiss.

Attakk fuq sistemi front-end-back-end li jippermettilna nidħlu f'talbiet ta 'partijiet terzi

Biex tiddetermina l-problema fil-kombinazzjoni frontend-backend użata, tista 'tibgħat talba bħal din permezz tal-frontend:

POST / dwar HTTP / 1.1
Ospitanti: example.com
Trasferiment-Kodifikazzjoni: chunked
Tul tal-Kontenut: 4

1
Z
Q

Il-problema hija preżenti jekk il-backend ma jipproċessax immedjatament it-talba u jistenna l-wasla tal-blokka finali żero ta 'konfini ta' data chunked. Għal kontroll aktar komplut ippreparat utilità speċjali li tittestja wkoll metodi possibbli biex taħbi l-header "Transfer-Encoding: chunked" mill-frontend.

It-twettiq ta' attakk reali jiddependi fuq il-kapaċitajiet tas-sit attakkat, pereżempju, meta tattakka l-applikazzjoni tal-web Trello, tista' tissostitwixxi l-bidu tat-talba (tissostitwixxi dejta bħal “PUT /1/members/1234... x=x&csrf =1234&username=testzzz&bio=cake”) u ibgħat messaġġ inkluż it-talba oriġinali ta’ utent ta’ parti terza u l-Cookie ta’ awtentikazzjoni speċifikata fiha. Għal attakk fuq saas-app.com, irriżulta li kien possibbli li jiġi sostitwit il-kodiċi JavaScript fir-rispons billi jiġi sostitwit f'wieħed mill-parametri tat-talba. Għall-attakk fuq redhat.com, intuża handler intern biex jidderieġi mill-ġdid lejn il-websajt tal-attakkant (talba tal-formola “POST /search?dest=../assets/idx?redir=//[protett bl-email]/ HTTP/1.1").

L-użu tal-metodu għan-netwerks tal-konsenja tal-kontenut għamilha possibbli li sempliċiment jissostitwixxi s-sit mitlub billi ssostitwixxa l-header "Host:". L-attakk jista 'jintuża wkoll biex ivvelena l-kontenut tas-sistemi ta' caching tal-kontenut u estratt dejta kunfidenzjali fil-cache. Il-quċċata tal-metodu kienet l-organizzazzjoni ta 'attakk fuq PayPal, li għamilha possibbli li jiġu interċettati passwords mibgħuta mill-utenti waqt l-awtentikazzjoni (it-talba iframe ġiet modifikata biex tesegwixxi JavaScript fil-kuntest tal-paġna paypal.com/us/gifts, għal liema CSP (Politika ta’ Sigurtà tal-Kontenut) ma kinitx applikata).

Interessanti, fl-2005 kien hemm propost teknika essenzjalment simili ta 'spoofing ta' rikjesti li tippermettilek li spoof data fi caching proxys (Tomcat, squid, mod_proxy) jew tevita l-imblukkar tal-firewall billi tispeċifika diversi talbiet "GET" jew "POST" f'sessjoni HTTP waħda.

Sors: opennet.ru

Żid kumment