Ikọlu lori awọn eto iwaju-ipari-pada-opin ti o gba wa laaye lati gbe sinu awọn ibeere ẹnikẹta

Ṣafihan awọn alaye ti ikọlu tuntun lori awọn aaye ti o lo awoṣe iwaju-opin-ipari, gẹgẹbi awọn ti nṣiṣẹ nipasẹ awọn nẹtiwọọki ifijiṣẹ akoonu, awọn iwọntunwọnsi fifuye tabi awọn aṣoju. Ikọlu naa ngbanilaaye, nipa fifiranṣẹ awọn ibeere kan, lati lọ sinu awọn akoonu ti awọn ibeere miiran ti a ṣe ilana ni okun kanna laarin iwaju iwaju ati ẹhin. Ọna ti a dabaa ni aṣeyọri ti a lo lati ṣeto ikọlu kan ti o jẹ ki o ṣee ṣe lati ṣe idiwọ awọn aye ijẹrisi ti awọn olumulo ti iṣẹ PayPal, eyiti o san awọn oniwadi nipa 40 ẹgbẹrun dọla gẹgẹbi apakan ti eto kan lati sọ nipa wiwa awọn ailagbara ti ko ni aabo. Ikọlu naa tun wulo si awọn aaye nipa lilo nẹtiwọọki ifijiṣẹ akoonu Akamai.

Ohun pataki ti iṣoro naa ni pe awọn iwaju ati awọn ẹhin ẹhin nigbagbogbo pese awọn ipele atilẹyin oriṣiriṣi fun ilana HTTP, ṣugbọn ni akoko kanna ṣafikun awọn ibeere lati ọdọ awọn olumulo oriṣiriṣi sinu ikanni ti o wọpọ. Lati sopọ awọn ibeere gbigba awọn iwaju ati awọn ibeere sisẹ ẹhin, asopọ TCP ti o pẹ to ti fi idi mulẹ, nipasẹ eyiti awọn ibeere olumulo ti gbejade, ti a gbejade lẹgbẹẹ pq kan lẹhin ekeji, niya nipasẹ ọna HTTP Ilana. Lati ya awọn ibeere lọtọ, awọn akọle "Ipari-Akoonu" (pinnu iwọn apapọ ti data ninu ibeere) ati "Gbigbe-Eyi koodu: chunked"(n gba ọ laaye lati gbe data lọ si awọn apakan, ni pato awọn bulọọki ti awọn titobi oriṣiriṣi ni ọna kika "{size}\r\n{block}\r\n{size}\r\n{block}\r\n0").

Iṣoro naa dide ti iwaju iwaju ba ṣe atilẹyin “Ipari-Akoonu” ṣugbọn kọju “Iyipada-Iyipada: chunked” (fun apẹẹrẹ, Akamai CDN ṣe eyi) tabi idakeji. Ti fifi koodu Gbigbe: chunked ni atilẹyin ni ẹgbẹ mejeeji, awọn ẹya imuse ti awọn olutọpa akọsori HTTP le ṣee lo fun ikọlu (fun apẹẹrẹ, nigbati opin iwaju ko foju kọ awọn laini bii “Iyipada-Iṣipopada: xchunked”, “Transfer-Encoding: chunked ", "Iyipada-Iyipada" : [tab] chunked", "X: X[\n] Gbigbe-Iyipada: chunked", "Iyipada-Iyipada[\n]: chunked" tabi "Iyipada-Iyipada: chunked", ati backend ni ifijišẹ lakọkọ wọn).

Ni ọran yii, ikọlu le firanṣẹ ibeere kan ti o ni awọn mejeeji “Ipari-Akoonu” ati awọn akọle “Iyipada-iyipada: chunked”, ṣugbọn iwọn ni “Akoonu-Ipari” ko ni ibamu si iwọn pq ti a ge, eyiti jẹ kere ju awọn gangan iye. Ti awọn ilana iwaju ati siwaju ibeere naa ni ibamu si “Ipari-Akoonu” ati ẹhin ẹhin n duro de bulọki lati pari ti o da lori “Iyipada-iṣipopada: chunked”, lẹhinna opin data ti o da lori “Iṣipopada-Encoding: chunked” yoo pinnu ni iṣaaju ati iru ti o ku ti ibeere naa olutayo yoo wa ni ibẹrẹ ti ibeere atẹle, ie. Olukọni naa yoo ni anfani lati so data lainidii pọ si ibẹrẹ ti ibeere ẹnikan ti a firanṣẹ ni atẹle.

Ikọlu lori awọn eto iwaju-ipari-pada-opin ti o gba wa laaye lati gbe sinu awọn ibeere ẹnikẹta

Lati pinnu iṣoro naa ni apapọ iwaju-backend ti a lo, o le fi ibeere ranṣẹ bii eyi nipasẹ iwaju iwaju:

POST / nipa HTTP / 1.1
Gbalejo: example.com
Gbigbe-Eyi koodu: chunked
Akoonu-Ipari: 4

1
Z
Q

Iṣoro naa wa ti ẹhin ko ba ṣe ilana ibeere naa lẹsẹkẹsẹ ati duro de dide ti idina opin odo ipari ti data chunked. Fun kan diẹ pipe ayẹwo pese sile IwUlO pataki kan ti o tun ṣe idanwo awọn ọna ti o ṣeeṣe fun fifipamo akọle “Iyipada-Iyipada: chunked” lati iwaju iwaju.

Gbigbe ikọlu gidi kan da lori awọn agbara ti aaye ti o kọlu, fun apẹẹrẹ, nigbati o ba kọlu ohun elo wẹẹbu Trello, o le rọpo ibẹrẹ ti ibeere (data aropo bii “PUT / 1 / awọn ọmọ ẹgbẹ / 1234… x = x&csrf = 1234&orukọ olumulo=testzzz&bio=cake”) ati firanṣẹ ifiranṣẹ kan pẹlu ibeere atilẹba ti olumulo ẹni-kẹta ati Kuki ìfàṣẹsí pato ninu rẹ. Fun ikọlu lori saas-app.com, o wa ni ṣee ṣe lati paarọ koodu JavaScript ni idahun nipa fidipo rẹ ni ọkan ninu awọn aye ibeere. Fun ikọlu lori redhat.com, oluṣakoso inu ni a lo lati ṣe atunṣe si oju opo wẹẹbu ikọlu naa (ibeere fun fọọmu “POST /search?dest=../assets/idx?redir=//[imeeli ni idaabobo]/ HTTP/1.1").

Lilo ọna fun awọn nẹtiwọọki ifijiṣẹ akoonu jẹ ki o ṣee ṣe lati paarọ aaye ti o beere nirọrun nipa rọpo akọsori “Gbalejo:”. A tun le lo ikọlu naa lati majele awọn akoonu inu awọn ọna ṣiṣe akoonu akoonu ati jade data aṣiri kuro. Ipin ti ọna naa ni iṣeto ti ikọlu lori PayPal, eyiti o jẹ ki o ṣee ṣe lati da awọn ọrọ igbaniwọle ti awọn olumulo ranṣẹ lakoko ijẹrisi (ibeere iframe ti yipada lati ṣiṣẹ JavaScript ni aaye ti oju-iwe paypal.com/us/gifts, fun eyiti CSP (Afihan Aabo akoonu) ko lo).

O yanilenu, ni 2005 o wa dabaa ilana iru ibeere ti o jọra ti o fun ọ laaye lati sọ data spoof ni awọn aṣoju caching (Tomcat, squid, mod_proxy) tabi idinamọ ogiriina nipasẹ sisọ ọpọlọpọ awọn ibeere “GET” tabi “POST” laarin igba HTTP kan.

orisun: opennet.ru

Fi ọrọìwòye kun