Үшінші тарап сұрауларына кіруге мүмкіндік беретін алдыңғы қатарлы жүйелерге шабуыл

Ашылды мазмұнды жеткізу желілері, жүктемені теңестірушілер немесе прокси-серверлер арқылы жұмыс істейтіндер сияқты фронт-back-end үлгісін пайдаланатын сайттарға жасалған жаңа шабуылдың мәліметтері. Шабуыл белгілі бір сұрауларды жіберу арқылы алдыңғы және сервер арасындағы бірдей ағында өңделген басқа сұраулардың мазмұнын сынауға мүмкіндік береді. Ұсынылған әдіс PayPal қызметін пайдаланушылардың аутентификация параметрлерін ұстауға мүмкіндік беретін шабуылды ұйымдастыру үшін сәтті қолданылды, ол зерттеушілерге патчланбаған осалдықтардың болуы туралы хабарлау бағдарламасының бөлігі ретінде шамамен 40 мың доллар төледі. Шабуыл Akamai мазмұнды жеткізу желісін пайдаланатын сайттарға да қатысты.

Мәселенің түйіні мынада: фронтендтер мен серверлер HTTP протоколы үшін жиі қолдаудың әртүрлі деңгейлерін қамтамасыз етеді, бірақ сонымен бірге әртүрлі пайдаланушылардың сұрауларын жалпы арнаға инкапсуляциялайды. Фронттік қабылдау сұраулары мен серверлік өңдеу сұрауларын қосу үшін ұзақ мерзімді TCP қосылымы орнатылады, ол арқылы пайдаланушы сұраныстары HTTP протоколы арқылы бөлінген тізбек бойынша бірінен соң бірі жіберіледі. Сұрауларды бөлу үшін «Мазмұн-ұзындығы» (сұраудағы деректердің жалпы өлшемін анықтайды) және «Тасымалдау-кодтау: кесінді"("{size}\r\n{block}\r\n{size}\r\n{block}\r\n0" пішімінде әртүрлі өлшемді блоктарды көрсете отырып, деректерді бөліктерге бөлуге мүмкіндік береді).

Егер фронтенд тек "Content-Length" функциясын қолдаса, бірақ "Тасымалдау-кодтау: кесінді" (мысалы, Akamai CDN мұны жасады) елемейді немесе керісінше мәселе туындайды. Егер Transfer-Encoding: chunked екі жақтан да қолдау көрсетілсе, HTTP тақырыбының талдаушыларының іске асыру мүмкіндіктері шабуыл үшін пайдаланылуы мүмкін (мысалы, алдыңғы жақ «Трансфер-кодтау: xchunked», «Transfer-Encoding: chunked) сияқты жолдарды елемеді. ”, “Тасымалдау-кодтау” :[қойындысы]бөлек”, “X: X[\n]Тасымалдау-кодтау: кесінді”, “Трансфер-кодтау[\n]: кесінді” немесе “Трансфер-кодтау: кесінді” және сервер оларды сәтті өңдейді).

Бұл жағдайда шабуылдаушы «Мазмұн-ұзындығы» және «Тасымалдау-кодтау: кесінді» тақырыптарының екеуін де қамтитын сұрауды жібере алады, бірақ «Мазмұн-ұзындығы» ішіндегі өлшем бөліктелген тізбектің өлшеміне сәйкес келмейді. нақты мәннен аз. Егер фронтенд сұрауды "Мазмұн-ұзындыққа" сәйкес өңдесе және қайта жіберсе және сервер "Тасымалдау-кодтау: кесінді" негізінде блоктың аяқталуын күтсе, онда "Тасымалдау-кодтау: кесіндіге" негізделген деректердің соңы болады. ертерек анықталады және сұраудың қалған бөлігі шабуылдаушы келесі сұраудың басында болады, яғни. шабуылдаушы келесі жіберілген басқа біреудің сұрауының басына ерікті деректерді тіркей алады.

Үшінші тарап сұрауларына кіруге мүмкіндік беретін алдыңғы қатарлы жүйелерге шабуыл

Пайдаланылған frontend-backend комбинациясындағы мәселені анықтау үшін келесідей сұрауды алдыңғы интерфейс арқылы жіберуге болады:

POST /HTTP туралы/1.1
Хост: example.com
Тасымалдау-кодтау: кесінді
Мазмұн-ұзындығы: 4

1
Z
Q

Егер сервер сұрауды дереу өңдемесе және бөлшектелген деректердің соңғы нөлдік шектейтін блогының келуін күтсе, мәселе бар. Толығырақ тексеру үшін дайындалған «Трансфер-кодтау: кесінді» тақырыбын алдыңғы бөліктен жасырудың ықтимал әдістерін сынайтын арнайы қызметтік бағдарлама.

Нақты шабуылды жүзеге асыру шабуыл жасалған сайттың мүмкіндіктеріне байланысты, мысалы, Trello веб-қосымшасына шабуыл жасағанда, сіз сұраудың басын ауыстыра аласыз («PUT /1/members/1234... x=x&csrf сияқты деректерді алмастырыңыз) =1234&username=testzzz&bio=cake”) және үшінші тарап пайдаланушысының бастапқы сұрауын және онда көрсетілген аутентификация cookie файлын қамтитын хабарлама жіберіңіз. Saas-app.com сайтына жасалған шабуыл үшін жауапта JavaScript кодын сұрау параметрлерінің біріне ауыстыру арқылы ауыстыру мүмкін болды. Redhat.com сайтындағы шабуыл үшін шабуылдаушының веб-сайтына қайта бағыттау үшін ішкі өңдеуші пайдаланылды («POST /search?dest=../assets/idx?redir=// нысанындағы сұрау.[электрондық пошта қорғалған]/ HTTP/1.1").

Мазмұнды жеткізу желілеріне арналған әдісті пайдалану «Хост:» тақырыбын ауыстыру арқылы сұралған сайтты жай ғана ауыстыруға мүмкіндік берді. Сондай-ақ, шабуыл мазмұнды кэштеу жүйелерінің мазмұнын улау және кэштелген құпия деректерді шығару үшін пайдаланылуы мүмкін. Әдістің шыңы PayPal-ға шабуылды ұйымдастыру болды, ол аутентификация кезінде пайдаланушылар жіберген құпия сөздерді ұстауға мүмкіндік берді (iframe сұрауы paypal.com/us/gifts бетінің контекстінде JavaScript орындау үшін өзгертілген. қандай CSP (Мазмұн қауіпсіздігі саясаты) қолданылмаған).

Бір қызығы, 2005 жылы болды ұсынылды бір HTTP сеансында бірнеше «GET» немесе «POST» сұрауларын көрсету арқылы прокси-серверлерде (Tomcat, squid, mod_proxy) кэштеудегі деректерді бұрмалауға немесе брандмауэрді бұғаттауды айналып өтуге мүмкіндік беретін іс жүзінде ұқсас сұрау бұрмалану әдісі.

Ақпарат көзі: opennet.ru

пікір қалдыру