በጃቫስክሪፕት ኮድ ውስጥ ያሉትን ድርጊቶች ለመደበቅ የማይታዩ የዩኒኮድ ቁምፊዎችን በመጠቀም

የTrojan Source ጥቃት ዘዴን ተከትሎ የዩኒኮድ ቁምፊዎችን በመጠቀም የሁለት አቅጣጫ ጽሁፍ ማሳያ ቅደም ተከተልን በመቀየር, ሌላ የተደበቁ ድርጊቶችን የማስተዋወቅ ዘዴ ታትሟል, በጃቫ ስክሪፕት ኮድ ላይ ተፈጻሚ ይሆናል. አዲሱ ዘዴ በዩኒኮድ ቁምፊ አጠቃቀም ላይ የተመሰረተ ነው "ㅤ" (ኮድ 0x3164, "HANGUL FILLER"), እሱም የፊደላት ምድብ ነው, ነገር ግን ምንም የሚታይ ይዘት የለውም. ይህ ቁምፊ ያለበት የዩኒኮድ ምድብ ከECMAScript 2015 ዝርዝር መግለጫ ጀምሮ በጃቫስክሪፕት ተለዋዋጭ ስሞች እንዲጠቀም ተፈቅዶለታል፣ይህም የማይታዩ ተለዋዋጮችን ወይም እንደ ኖትፓድ++ እና ቪኤስ ኮድ ባሉ ታዋቂ የኮድ አርታዒዎች ውስጥ ከሌሎች ተለዋዋጮች የማይለዩ አዲስ ተለዋዋጮችን መፍጠር ያስችላል።

እንደ ምሳሌ፣ የ Node.js መድረክ ኮድ ተሰጥቷል፣ አንድ ነጠላ ቁምፊ “ㅤ”ን የያዘ ተለዋዋጭ በመጠቀም በአጥቂው የተገለጸውን ኮድ እንዲፈጽም የሚያስችል የጀርባ በር ተደብቋል፡ app.get('/ network_health', async (req, res) => {const {የጊዜ ማብቂያ,ㅤ} = req.query; // በእርግጥ "const {የተወሰነ ጊዜ,ㅤ \u3164}" const checkCommands = ['ping -c 1 google. com', 'curl -s http:// example.com/',ㅤ // ኮማው በቁምፊው ይከተላል \u3164];

በአንደኛው እይታ ፣ ጊዜው ያለፈበት እሴት ብቻ በውጫዊ ግቤት ውስጥ ያልፋል ፣ እና የሚከናወኑት ትዕዛዞች ያለው ድርድር ምንም ጉዳት የሌለው ቋሚ ዝርዝር ይይዛል። ግን በእውነቱ ፣ ከተለዋዋጭ ጊዜ ማብቂያ በኋላ ፣ የቁምፊ ኮድ \u3164 ያለው የሌላ የማይታይ ተለዋዋጭ እሴት ተመድቧል ፣ እሱም እንዲሁ ወደሚተገበሩ ትዕዛዞች ድርድር ውስጥ ተተካ። እንደዚህ አይነት ንድፍ ካለ አጥቂው እንደ "https://host:8080/network_health?%E3%85%A4=command"የኋላውን በር ለማንቃት እና ኮዳቸውን ለማስፈጸም ጥያቄ መላክ ይችላል።

ሌላው ምሳሌ “ǃ” (ALVEOLAR CLICK) ቁምፊ ነው፣ እሱም የቃለ አጋኖን የሚያመለክት መልክ ሊሰጥ ይችላል። ለምሳሌ፣ “if(environmentǃ=ENV_PROD){” የሚለው አገላለጽ በ Node.js 14 ሲተገበር ምንጊዜም እውነት ይሆናል፣ ምክንያቱም ልዩነትን አያጣራም፣ ነገር ግን የENV_PRODን እሴት ለተለዋዋጭ “አካባቢ” ይመድባል። ሌሎች አሳሳች የዩኒኮድ ቁምፊዎች "/", "-", "+", "⩵", "❨", "⫽", "꓿" እና "∗" ያካትታሉ።

ምንጭ: opennet.ru

አስተያየት ያክሉ