Gwo pwoblèm nan se ke entèfas ak backends souvan bay diferan nivo sipò pou pwotokòl HTTP a, men an menm tan an encapsule demann soti nan itilizatè diferan nan yon chanèl komen. Pou konekte demann k ap resevwa entèfas yo ak demann pwosesis backend yo, yo etabli yon koneksyon TCP ki dire lontan, atravè ki demann itilizatè yo transmèt, transmèt sou chèn lan youn apre lòt, separe pa mwayen pwotokòl HTTP. Pou separe demann yo, headers "Content-Length" (detèmine gwosè total done yo nan demann lan) ak "
Pwoblèm lan rive si entèfas la sèlman sipòte "Content-Length" men li inyore "Transfè-Kodaj: an fragman" (pa egzanp, Akamai CDN te fè sa) oswa vis vèrsa. Si Transfer-Encoding: chunked sipòte sou tou de bò yo, karakteristik aplikasyon HTTP header parsers ka itilize pou yon atak (pa egzanp, lè front end inyore liy tankou "Transfè-Kodaj: xchunked", "Transfè-Kodaj: chunked". ”, “Transfè-Kodaj” :[onglet]ankou, "X: X[\n]Transfè-Kodaj: an moso", "Transfè-Kodaj[\n]: an moso" oswa "Transfè-Kodaj: an moso", epi backend la avèk siksè trete yo).
Nan ka sa a, yon atakè ka voye yon demann ki gen tou de "Content-Length" ak "Transfer-Encoding: chunked" header, men gwosè a nan "Content-Length" pa koresponn ak gwosè a nan chèn nan chunked, ki. pi piti pase valè aktyèl la. Si fasad la trete epi voye demann lan dapre "Content-Length" epi backend la ap tann pou blòk la fini baze sou "Transfè-kodaj: an fragman", Lè sa a, fen done yo ki baze sou "Transfè-kodaj: an fragman" pral dwe detèmine pi bonè ak ke ki rete nan demann lan atakè a pral nan kòmansman an nan pwochen demann lan, i.e. atakè a pral kapab tache done abitrè nan kòmansman an nan demann yon lòt moun transmèt pwochen.
Pou detèmine pwoblèm nan nan konbinezon frontend-backend itilize a, ou ka voye yon demann tankou sa a atravè entèfas la:
POST /sou HTTP/1.1
Lame: example.com
Transfè-kodaj: an fragman
Longè kontni: 4
1
Z
Q
Pwoblèm nan prezan si backend la pa imedyatman trete demann lan epi tann pou rive nan blòk limit zewo final la nan done an fragman. Pou yon chèk ki pi konplè
Fè yon atak reyèl depann de kapasite sit atak la, pou egzanp, lè w atake aplikasyon entènèt Trello a, ou ka ranplase nan kòmansman demann lan (ranplase done tankou "PUT /1/members/1234... x=x&csrf =1234&username=testzzz&bio=cake") epi voye yon mesaj ki gen ladan demann orijinal yon itilizatè twazyèm pati ak bonbon otantifikasyon ki espesifye ladan l. Pou yon atak sou saas-app.com, li te tounen posib pou ranplase kòd JavaScript nan repons lan pa ranplase li nan youn nan paramèt demann yo. Pou atak la sou redhat.com, yo te itilize yon moun kap okipe entèn pou redireksyon sou sit entènèt atakè a (yon demann nan fòm "POST /search?dest=../assets/idx?redir=//[imèl pwoteje]/ HTTP/1.1").
Sèvi ak metòd la pou rezo livrezon kontni te fè li posib tou senpleman ranplase sit la mande pa ranplase "Host:" header la. Atak la ka itilize tou pou anpwazonnen sa ki nan sistèm kachèt kontni ak ekstrè done konfidansyèl kachèt yo. Pinnacle metòd la te òganizasyon an nan yon atak sou PayPal, ki te fè li posib entèsepte modpas itilizatè yo te voye pandan otantifikasyon (demann iframe a te modifye pou egzekite JavaScript nan yon kontèks paj paypal.com/us/gifts, pou ki CSP (Content Security Policy) pa te aplike).
Enteresan, an 2005 te gen
Sous: opennet.ru