Benotzt onsichtbar Unicode Charaktere fir Aktiounen am JavaScript Code ze verstoppen

No der Trojan Source Attack Method baséiert op der Benotzung vun Unicode Charaktere déi d'Displayuerdnung vum bidirektionalen Text änneren, ass eng aner Technik fir verstoppte Aktiounen aféieren publizéiert, applicabel fir JavaScript Code. Déi nei Method baséiert op der Notzung vum Unicode Charakter "ㅤ" (Code 0x3164, "HANGUL FILLER"), wat e Bréif ass awer kee sichtbare Inhalt huet. D'Unicode Kategorie, zu där dëse Charakter gehéiert, ass zanter der ECMAScript 2015 Spezifizéierung erlaabt fir an JavaScript Variabel Nimm ze benotzen, wat et méiglech mécht onsichtbar Variablen oder nei Variablen ze kreéieren, déi net vun anere Variablen ënnerscheeden an de populäre Code Editoren wéi Notepad ++ a VS Code.

Als Beispill gëtt de Code fir d'Node.js Plattform uginn, an där, mat enger Variabel déi aus engem eenzege Charakter "ㅤ" besteet, eng Hannerdier verstoppt ass, déi Iech erlaabt de Code auszeféieren, deen vum Ugräifer spezifizéiert ass: app.get( '/network_health', async (req, res) => { const { timeout,ㅤ} = req.query; // seet eigentlech "const {timeout,ㅤ \u3164}" const checkCommands = [ 'ping -c 1 google. com', 'curl -s http:// example.com/',ㅤ // Comma gefollegt vun \u3164 ];

Op den éischte Bléck gëtt nëmmen den Timeout-Wäert duerch den externen Parameter passéiert, an d'Array mat de Kommandoen, déi ausgefouert ginn, enthält eng harmlos fix Lëscht. Awer tatsächlech, no der Timeout Variabel, gëtt de Wäert vun enger anerer onsichtbarer Variabel mam Symbolcode \u3164 zougewisen, deen och an d'Array vun ausführbaren Kommandoen ersat gëtt. Also, an der Präsenz vun esou enger Struktur, kann en Ugräifer eng Ufro wéi "https://host:8080/network_health?%E3%85%A4=command" schécken fir d'Backdoor z'aktivéieren a säi Code auszeféieren.

Als anert Beispill gëtt de Charakter "ǃ" (ALVEOLAR KLICK) uginn, dee benotzt ka ginn fir d'Erscheinung vun engem Ausrufezeeche ze weisen. Zum Beispill, den Ausdrock "if(environmentǃ=ENV_PROD){" wann se am Node.js 14 ausgefouert gëtt, wäert ëmmer richteg sinn, well et net no Differenzen kontrolléiert, awer d'Variabel "Environmentǃ" op ENV_PROD setzt. Misführend Unicode Charaktere enthalen "/", "−", "+", "⩵", "❨", "⫽", "꓿", an "∗".

Source: opennet.ru

Setzt e Commentaire