Напад на фронт-енд-бацк-енд системе који нам омогућава да се увучемо у захтеве трећих страна

Откривено детаљи о новом нападу на сајтове који користе фронт-енд-бацк-енд модел, као што су они који пролазе кроз мреже за испоруку садржаја, балансере оптерећења или проксије. Напад омогућава, слањем одређених захтева, да се увуче у садржај других захтева обрађених у истој нити између фронтенда и бацкенда. Предложени метод је успешно коришћен за организовање напада који је омогућио пресретање параметара аутентификације корисника услуге ПаиПал, која је истраживачима платила око 40 хиљада долара у оквиру програма за обавештавање о присуству незакрпљених рањивости. Напад је такође применљив на сајтове који користе Акамаи мрежу за испоруку садржаја.

Суштина проблема је у томе што фронтендови и бацкендови често пружају различите нивое подршке за ХТТП протокол, али у исто време инкапсулирају захтеве различитих корисника у заједнички канал. Да би се повезали захтеви за пријем фронтенда и захтеви за обраду позадинске мреже, успоставља се дуготрајна ТЦП веза, преко које се преносе кориснички захтеви, преносе дуж ланца један за другим, раздвојени помоћу ХТТП протокола. За раздвајање захтева, заглавља „Цонтент-Ленгтх“ (одређује укупну величину података у захтеву) и „Трансфер-Енцодинг: у комадима„(омогућава вам да преносите податке у деловима, наводећи блокове различитих величина у формату „{сизе}\р\н{блоцк}\р\н{сизе}\р\н{блоцк}\р\н0“).

Проблем настаје ако фронтенд подржава само „Цонтент-Ленгтх“, али игнорише „Трансфер-Енцодинг: цхункед“ (на пример, Акамаи ЦДН је то урадио) или обрнуто. Ако је Трансфер-Енцодинг: цхункед подржан са обе стране, карактеристике имплементације ХТТП анализатора заглавља могу се користити за напад (на пример, када предњи крај игнорише линије као што су „Трансфер-Енцодинг: кцхункед”, „Трансфер-Енцодинг: цхункед ”, „Кодирање за пренос” :[таб]комадирано”, „Кс: Кс[\н]Кодирање за пренос: подељено на комаде”, „Кодирање за пренос[\н]: подељено на комаде” или „Кодирање за пренос: подељено на комаде” и позадина их успешно обрађује).

У овом случају, нападач може послати захтев који садржи и заглавља „Цонтент-Ленгтх“ и „Трансфер-Енцодинг: цхункед“, али величина у „Цонтент-Ленгтх“ не одговара величини ланца који је подељен на комаде, што је мања од стварне вредности. Ако фронтенд обрађује и прослеђује захтев у складу са „Цонтент-Ленгтх” и бацкенд чека да се блок заврши на основу „Трансфер-Енцодинг: цхункед”, онда ће крај података заснован на „Трансфер-Енцодинг: цхункед” бити одређен раније и преостали реп захтева нападач ће бити на почетку следећег захтева, тј. нападач ће моћи да приложи произвољне податке на почетак нечијег другог захтева који се даље преноси.

Напад на фронт-енд-бацк-енд системе који нам омогућава да се увучемо у захтеве трећих страна

Да бисте утврдили проблем у коришћеној комбинацији фронтенд-бацкенд, можете послати захтев попут овог преко фронтенда:

ПОСТ /о ХТТП/1.1
Домаћин: екампле.цом
Трансфер-Енцодинг: у комадима
Цонтент-Ленгтх: КСНУМКС

1
Z
Q

Проблем је присутан ако позадина не обради захтев одмах и сачека долазак коначног нулте граничног блока података у комадима. За потпунију проверу припремљен посебан услужни програм који такође тестира могуће методе за сакривање заглавља „Трансфер-Енцодинг: цхункед” са фронтенда.

Извођење правог напада зависи од могућности нападнутог сајта, на пример, када нападате Трелло веб апликацију, можете да замените почетак захтева (замените податке попут „ПУТ /1/мемберс/1234... к=к&цсрф =1234&усернаме=тестззз&био=цаке”) и пошаљите поруку која укључује оригинални захтев корисника треће стране и аутентификациони колачић наведен у њему. За напад на саас-апп.цом, испоставило се да је могуће заменити ЈаваСцрипт код у одговору заменом у једном од параметара захтева. За напад на редхат.цом коришћен је интерни руковалац за преусмеравање на веб локацију нападача (захтев у облику „ПОСТ /сеарцх?дест=../ассетс/идк?редир=//[емаил заштићен]/ ХТТП/1.1").

Коришћење метода за мреже за испоруку садржаја омогућило је једноставно замену захтеваног сајта заменом заглавља „Хост:“. Напад се такође може користити за тровање садржаја система за кеширање садржаја и издвајање кешираних поверљивих података. Врхунац методе било је организовање напада на ПаиПал, који је омогућио пресретање лозинки које су корисници послали током аутентификације (ифраме захтев је модификован да изврши ЈаваСцрипт у контексту странице паипал.цом/ус/гифтс, за који ЦСП (Политика безбедности садржаја) није примењен).

Занимљиво је да је 2005 предложио суштински слична техника лажирања захтева која вам омогућава да лажирате податке у проксијима за кеширање (Томцат, скуид, мод_проки) или заобиђете блокирање заштитног зида навођењем неколико „ГЕТ“ или „ПОСТ“ захтева у оквиру једне ХТТП сесије.

Извор: опеннет.ру

Додај коментар