Коришћење невидљивих уницоде знакова за сакривање радњи у ЈаваСцрипт коду

Пратећи метод напада Тројан Соурце, који се заснива на коришћењу Уницоде карактера који мењају редослед приказа двосмерног текста, објављена је још једна техника за увођење скривених радњи, применљива на ЈаваСцрипт код. Нови метод се заснива на употреби уникод знака „ㅤ” (шифра 0к3164, „ХАНГУЛ ФИЛЛЕР”), који припада категорији слова, али нема видљив садржај. Уницоде категорија којој припада овај знак је дозвољена од спецификације ЕЦМАСцрипт 2015 за употребу у именима ЈаваСцрипт променљивих, што омогућава креирање невидљивих променљивих или нових променљивих које се не разликују од других променљивих у популарним уређивачима кода као што су Нотепад++ и ВС Цоде.

Као пример, дат је код за Ноде.јс платформу, у коме је, користећи променљиву која се састоји од једног знака „ㅤ“, скривена позадинска врата која омогућавају извршавање кода који је одредио нападач: апп.гет('/ нетворк_хеалтх', асинц (рек, рес) = > { цонст { тимеоут,ㅤ} = рек.куери; // у ствари каже „цонст { тимеоут,ㅤ \у3164}” цонст цхецкЦоммандс = [ 'пинг -ц 1 гоогле. цом', 'цурл -с хттп:// екампле.цом/',ㅤ // иза зареза следи знак \у3164 ];

На први поглед, кроз екстерни параметар се прослеђује само вредност временског ограничења, а низ са командама које треба извршити садржи безопасну фиксну листу. Али у ствари, након променљиве временског ограничења, додељује се вредност друге невидљиве променљиве са кодом карактера \у3164, која је такође замењена низом извршних команди. Стога, ако је такав дизајн доступан, нападач може послати захтев попут „хттпс://хост:8080/нетворк_хеалтх?%Е3%85%А4=цомманд“ да активира бацкдоор и изврши свој код.

Други пример је знак „ǃ“ (АЛВЕОЛАРНИ КЛИК), који се може користити да да изглед као знак узвика. На пример, израз „иф(енвиронментǃ=ЕНВ_ПРОД){” када се изврши у Ноде.јс 14 увек ће бити тачан, пошто не проверава разлике, већ додељује вредност ЕНВ_ПРОД променљивој „енвиронментǃ”. Остали обмањујући уникод знакови укључују „/“, „−“, „+“, „⩵“, „❨“, „⫽“, „꓿“ и „∗“.

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

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