Použití neviditelných unicode symbolů k zakrytí akcí v JavaScriptovém kódu

Po metodě útoku Trojan Source, která se zakládá na použití unicode znaků měnících pořadí zobrazení obousměrného textu, byla zveřejněna další technika vkládání skrytých akcí, aplikovatelná na kód v jazyce JavaScript. Nová metoda vychází z použití unicode znaku „ㅤ“ (kód 0x3164, „HANGUL FILLER“), který spadá do kategorie písmen, ale nemá viditelný obsah. Unicode kategorie, do které tento znak patří, je povolena od specifikace ECMAScript 2015 pro použití v názvech proměnných JavaScript, což umožňuje vytvářet neviditelné proměnné nebo nové proměnné, které nejsou odlišitelné od ostatních proměnných v oblíbených editorech kódu, jako je Notepad++ a VS Code.

Jako příklad je uveden kód pro platformu Node.js, ve kterém je pomocí proměnné složené z jednoho znaku „ㅤ“ skryt zpětný kanál, který umožňuje provést zadaný kód útočníkem: app.get(‘/network_health’, async (req, res) => { const { timeout,ㅤ} = req.query; // ve skutečnosti je uvedeno „const { timeout,ㅤ \u3164}“ const checkCommands = [ ‘ping -c 1 google.com’, ‘curl -s http://example.com/’,ㅤ // za čárkou následuje znak \u3164 ];

Na první pohled se zdá, že externím parametrem se předává pouze hodnota timeout, zatímco pole s vykonávanými příkazy obsahuje neškodný pevný seznam. Ve skutečnosti však po proměnné timeout je přiřazena hodnota další neviditelné proměnné s kódem znaku \u3164, která je také vložena do pole vykonávaných příkazů. Tímto způsobem může útočník pro aktivaci backdooru a vykonání svého kódu odeslat požadavek ve formátu „https://host:8080/network_health?=časť“.

Jako další příklad je uváděn znak „ǃ“ (ALVEOLAR CLICK), který může být použit k vytvoření iluze označení vykřičníku. Například výraz „if(environmentǃ=ENV_PROD){“ při vykonávání v Node.js 14 vždy vrátí pravdu, protože zde nedochází k porovnání, ale k přiřazení proměnné „environmentǃ“ hodnoty ENV_PROD. Mezi zavádějícími unicode znaky jsou také zmíněny „/“, „−“, „+“, „⩵“, „❨“, „⫽“, „꓿“ a „∗“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster